ios开发中如果autolayout来作tablecell的话,假设tablecell分有图没图的场景,如何做cell比较好?

1、为有图的做一个cell,为没图的也做一个cell?
2、就做一个cell,然后用代码方式动态计算cell的高度(似乎抛弃了autolayout)?
以上两种方式,那种方式更优,还望老鸟们来指导一二!
PIPIONE
浏览 372回答 2
2回答

哔哔one

那两个cell是大部分都不一样,还是只有有图/没图这一点不一样呀?如果大部分不一样肯定是做两个cell好。如果只是有图没图的区别,这个说实话之前我也觉得有点麻烦……首先你要注意的是,如果一个view用了autoLayout,那么你用代码设它的frame就不管用了。如果不想用代码动态计算高度的话,可以把约束动态生成。就是把跟图片有关的约束先不要添加(如果是xib画的,勾上那个removeatbuildtime),然后在运行时判断:如果图片显示的话就添加与图片相关的约束,如果不显示的话就添加一个相对于别的view(比如contentView)的约束。重用cell的时候还要记得调整。这样听起来确实有些麻烦。另外一种方法就是把view里面的元素多参照contentView的高度排,然后高度用代码动态计算。总之避免不了写一点代码。除此之外还有一些其他方法,比如给image设一个height或width的constraint,然后不显示时把constant设成0……(只适合图片挨边的情况,不然会多出一条空白间隔)或者有玩优先级的……不过这些都需要根据cell的具体情况具体定啦。说实话我觉得autolayout在面对这种,视图元素可能显示、可能不显示的情况,确实是显得有些劣势,也不知道有没有什么简单点的办法。抛砖引玉,期待更好的答案。

幕布斯6054654

我觉得可以采用UITableView-FDTemplateLayoutCell这是iOS7以后都可以用的,利用autolayout的方式来自动计算cell的高度。可以返回每一个cell的高度。说一下我的做法,虽然我觉得十分的不合理...但是我还是用了。我开始判断了有没有图片。有的话设置一个约束,没有的话又设置一个约束。这样就可以自动计算了。顺便说一下,我是纯代码手写的约束。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript