怎样一个类似“QQ空间-动态”的页面?


我现在的思路:
1. 纯代码布局
2. 动态中的照片用CollectionView展示多张图片/imageView展示单张图片
3. 赞列表用CollectionView
4. 评论列表用TableView
我的问题:
显然上面的3条中View的高度都是需要根据内容动态调整的,比如:
1. 图片
没有图片的话就不显示
一张图片是一个大图
多张图片放到CollectionView中,由于图片不同,CollectionView所占用高度不同
2.赞
没有赞的话不显示
多个赞填充到CollectionView中
超过一定数量后仅显示数量
显然赞自己的Y值需要根据上一个图片视图调整,赞自己的高度要根据赞个数调整
3.评论
和赞一样

这就要写非常复杂的高度计算方法
同时涉及到在TableViewCell.m文件中和在ViewController的tableView行高代理回调中调用这个方法两次,非常不优雅。

1.在这个需求中使用纯代码布局有什么比较好的解决办法吗?
2.storyboard能否实现如此复杂的(类似QQ空间-动态)的ViewController/TableViewCell?
不胜感激~

storyboard ios xcode swift objective-c

万老爷 10 years, 5 months ago
  1. 关于计算行高
    纯代码布局也可以计算。就拿代码算就行了……
    如果你只支持 iOS 7 以上,也许可以看看这个方法: tableView:estimatedHeightForRowAtIndexPath:
    不然的话,可以缓存cell及子view的frame,避免重复计算。

  2. 可以。可以辅以代码调整,也可以用autoLayout(可能仍需少数代码调整)。

Lambda answered 10 years, 5 months ago

Your Answer