V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
zhlooking
V2EX  ›  iDev

iOS 中 UITableView 的嵌套问题?

  •  
  •   zhlooking · 2016-05-24 21:50:52 +08:00 · 7239 次点击
    这是一个创建于 3101 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Apple 的文档说不推荐 UIScrollView 中嵌套 UIScrollView 。可是看 A 站和 B 站的 App 中“首页->热门推荐”界面,发现都是 UITableView 的 Cell 里面套 UIScrollView 再套 UITableView 的方式。自己实现了下,懵逼了,事件处理太繁琐,或者我的思路是错的?大家有什么思路么?谢谢。
    18 条回复    2016-12-22 18:06:36 +08:00
    lastObject
        1
    lastObject  
       2016-05-24 22:01:52 +08:00
    loveuqian
        2
    loveuqian  
       2016-05-24 22:08:34 +08:00
    我都还准备 cell 内套 table 呢
    父子控制器应该可以解决这个问题吧
    jackisnotspirate
        3
    jackisnotspirate  
       2016-05-24 22:46:34 +08:00 via iPhone
    Cell 里里面可以装 VC 啊
    blackfire
        4
    blackfire  
       2016-05-24 22:46:39 +08:00
    杀死手机 app 开发者系列——真心不懂这么设计到底是有多好?
    如果其他页面是搬砖码起来的话,这样的页面完全就是积木搭起来的,维护的时候完全不敢去碰啊混蛋
    多层嵌套以后各种体验差(可能是我水平渣),作为第一用户的开发者视角完全骂人啊混蛋

    在萌币里前行吧少年,等你遇到 tableView 嵌套 scrollview 和 tableview ,其中的 scrollView 嵌套一个 webview 和一个 tableview 的需求时你就会觉得这也没什么了。为什么不能多点真诚,少点嵌套啊混蛋


    发泄完了,去嵌套吧
    zhlooking
        5
    zhlooking  
    OP
       2016-05-24 23:18:20 +08:00
    @lastObject 每错,就是套 :)
    @loveuqian @jackisnotspirate 父子控制器求详解?
    @blackfire 不,很蛋疼啊。
    zhlooking
        6
    zhlooking  
    OP
       2016-05-24 23:29:56 +08:00
    仔细看了下。上面的应该是一个单独的 View 。下面的是一个 ScrollView 中嵌套了两个 TableView ,通过 TableView 的 contentOffset.y 来移动上面的 View 的 origin.y 。这个思路对么?
    VichyChen
        7
    VichyChen  
       2016-05-25 09:46:33 +08:00
    @blackfire 道理大家都懂,求提供一个类似苹果商店首页布局的方法: tableView 里每个 cell 嵌套一个横向列表,苹果商店只有不到 10 几个,而我们这边的要求是 100 个。求推荐不嵌套还能有什么方法布局。。。
    spongebobsun
        8
    spongebobsun  
       2016-05-25 09:50:06 +08:00
    UITableViewCell 装 UICollectionView.
    lbj96347
        9
    lbj96347  
       2016-05-25 14:54:03 +08:00
    @VichyChen 在 UITableView 内装 WebView 呢。只要内存清理及时,放多少个 WebView 都没有问题。 WKWebView 是 WebKit 实现的,从 UIKit 上面分离出来了。性能也高。
    VichyChen
        10
    VichyChen  
       2016-05-26 16:14:52 +08:00
    @lbj96347 webView 好像也不错。几张图还行,我这里要显示 100 张图的话 webView 貌似一 load 就会全部图片 load 出来,没办法延迟加载了吧?
    toono
        11
    toono  
       2016-05-31 16:34:34 +08:00
    @spongebobsun 请问有什么这样子的栗子代码吗?现在就是做到这里,越写感觉坑越大, UITableViewCell 装 UICollectionView 之后 TableViewCell 的重用和数据是没问题,但是 CollectionView 的数据问题就大了,首先应该得每个 CollectionView 拥有一个数据源对象吧?但是如果数据源的实例话在 tableviewCell 的 datasource 里面写的话 CollectionView 的数据源们很可能都是同一个对象,这样就出问题了。哭泣脸
    spongebobsun
        12
    spongebobsun  
       2016-06-01 17:00:19 +08:00
    @toono 为啥数据源会是同一个对象喃。。。一个是 UITableViewDataSource 一个是 UICollectionViewDataSource 哇。。。还是我愚笨没理解你的意思。。。栗子不大好给。。。是公司的 code 。。。
    kitalphaj
        13
    kitalphaj  
       2016-06-02 07:59:59 +08:00
    @toono 重写 prepareForReuse ,在里面清空数据源。
    kitalphaj
        14
    kitalphaj  
       2016-06-02 08:04:17 +08:00
    @zhlooking 我写过 UIScrollView 套 UIWebView ,思路是 Disable 掉 UIWebView 的滚动,然后监听 UIScrollView 的滚动来手动设置 UIWebView 的 contentOffset 。这样可以实现给 UIWebView 加 Header, Footer 之类的效果。而且我记得滚动监听里面代码就 2 行。。。
    toono
        15
    toono  
       2016-06-03 23:50:08 +08:00
    @kitalphaj 我好像找到更好的实现办法 http://www.jianshu.com/p/c5d3ecc3ec5a
    fhefh
        16
    fhefh  
       2016-06-18 23:11:33 +08:00
    mark~~~~~
    HuangLibo
        17
    HuangLibo  
       2016-12-22 18:04:56 +08:00
    @loveuqian 父子控制器是正解!
    HuangLibo
        18
    HuangLibo  
       2016-12-22 18:06:36 +08:00
    @blackfire 一个包含各种板块的板块怎么可能不嵌套,不同的板块用子控制器来管理,不同的板块通过一个总线控制器来关联,每个板块各司其职。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:22 · PVG 21:22 · LAX 05:22 · JFK 08:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.