图 1
图 2
如图所示,用的 autolayout ( mansory ,没用 xib ,约束都是在 initwithstlye 方法中添加的), label 是自定义的(自定义了很多东西比如 padding 这种,比较方便就直接用了)。遇到的问题是第一次显示 cell 的时候都是省略号,只有滑动出屏幕,再出现之后才是正常的。想了很多方法,比如在传入数据源 configurecell 时候调用 setNeedsLayout()但是不起作用。用系统自带的应该没问题,菜鸡想知道这是什么原因导致的(别人的代码用的 xib ,貌似是正常的..我明天仔细看看)
1
mornlight 2016-02-14 21:53:16 +08:00
划动出屏幕再出现时会通常更新一次 cell ,具体干了些啥你应该知道。
显示省略号是因为 label 长度不够啊,文字出不来,最直接的可能原因是它的约束写得有问题,把 label 压得太短了。 |
2
SeanChense 2016-02-14 21:59:52 +08:00
楼上已经解释得足够详细了。
还想要有进一步的探索就必须放代码了。 |
3
juxingzhutou 2016-02-15 08:27:20 +08:00
有可能出问题的原因:
1. 右边界的约束没设置好; 2. 在 heightForRow 中用 systemLayoutSizeFittingSize 推算高度之前没有为 cell 的宽度赋值,对 cell 的 width 赋一个 table view 的宽度即可; 3. label 没有在 bounds 改变时正确地修改自己的 preferredMaxLayoutWidth ,继承 UILabel 并重写对应 setter 方法即可。 具体可参考 Github 上的`forkingdog/UITableView-FDTemplateLayoutCell`的实现。 |