没有现成的问题可以解决我的应用中发生的事情。
我的UITableViewCell子类中的缩进级别偶尔会在1或0处。单元格中的文本将缩进或拥抱左边距(看似随机),因为单元格是排队和排队的。我在cellForRow:
中设置了级别,我在子类的configure:
方法中设置了级别,我实现了indentationLevelForRow:
。这些都没有明显的效果。
我可以重现的一件事是,当我触摸一个单元格时,缩进会崩溃(级别< -0)。另一种触摸不会切换它。我在这里写'触摸',因为即使willSelect:
返回nil
,也会发生这种情况。在这些触摸后滚动偶尔会将级别重置为1。
可能存在的一个问题是内容视图包含第三方UILabel子类TTTAttributedLabel
的单个实例。我对这段代码知之甚少,但是有方法setText:afterInheritingLabelAttributesAndConfiguringWithBlock:
实现了块完成/回调,可能会影响事物。但事实似乎并非如此,因为收回回调没有明显改善。
答案 0 :(得分:1)
文档没有确切说明,但我不认为tableView:indentationLevelForRowAtIndexPath:
适用于自定义子视图,例如TTTAttributedLabel
。也就是说,我认为它只会影响单元格的标准子视图(textLabel
,imageView
等)。
如果您需要自定义子视图的自定义缩进级别,我希望您自己需要实现。您当然可以继续实现该委托方法来集中逻辑,但在布置单元格时,您可能需要使用该方法的结果。
答案 1 :(得分:0)
我在故事板中重新实现了整个视图,经过AutoLayout的相当多的试验和错误后,设法让整个工作没有任何瑕疵。