回答我自己 - uitableview - ios7 - 未调用 cellForRowAtIndexPath
Posted
技术标签:
【中文标题】回答我自己 - uitableview - ios7 - 未调用 cellForRowAtIndexPath【英文标题】:ANnswering myself - uitableview - ios7 - cellForRowAtIndexPath not called 【发布时间】:2014-11-04 18:28:05 【问题描述】:我正在使用带有使用情节提要创建的嵌入式 uitableview 的 uivewcontroller。
tableview 设置为使用我的自定义视图控制器。
它被设置为具有“动态原型”。
单元格已正确设置重用标识符。
我不需要手动为我的单元注册单元重用标识符,因为它是使用情节提要创建的。但我还是试过了。
表格视图也被正确设置为将我的自定义视图控制器用于数据源和委托(很多 SO 帖子都谈到了这一点)。我还在我的视图控制器中为我的 tableview 添加了一个插座并手动调用[mytableview2.delegate=self; [mytableview2.dataSource=self;
仍然没有运气。
我在调用我的 tableview numberofrowsinsection
之前将数据加载到数组中,所以这不是问题。
我还尝试在viewDidLoad
方法中加载数据后添加[mytableview reloadData]
语句。没有骰子。
单元格高度设置为 120(不像其他一些 SO 帖子那样为零)。
我还将视图、表格视图和单元格的背景颜色更改为不同的颜色(灰色、黄色、红色)。但我在模拟器中看到的都是灰色的。所以表格视图和单元格甚至没有显示出来。
为了调试,我将 NSLog 和断点放在“numberofrowsinsection
”、“numberofsections
”和“Cellforrowatindexpath
”。
numberofrowsinsection、numberofsections 被调用并确认我的数组不为空。他们返回阳性计数。 但我的cellforrowatindexpath
从未被调用。
拉了几个小时的头发后,我发现了问题。
我曾使用 Xcode 的故事板自动布局选项“添加缺少的约束”来自动将约束添加到我的表格视图。这就是问题所在!删除所有约束后,我的表格视图单元格立即出现!我在任何 SO 帖子中都没有找到这个,所以希望这对其他人有帮助!因此,如果您遇到类似问题并确认上述所有设置均正确,请尝试删除 tableview 上的所有约束!
【问题讨论】:
【参考方案1】:我曾使用 Xcode 的故事板自动布局选项“添加缺少的约束”来自动将约束添加到我的表格视图。这就是问题所在!删除所有约束后,我的表格视图单元格立即出现!我在任何 SO 帖子中都没有找到这个,所以希望这对其他人有帮助!因此,如果您遇到类似的问题并确认上述所有设置均正确,请尝试删除 tableview 上的所有约束并测试!然后手动一一正确手动添加约束。
【讨论】:
非常感谢。我将补充一点,即使自动布局没有显示任何警告或错误,它也发生了以上是关于回答我自己 - uitableview - ios7 - 未调用 cellForRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章
iOS - UITableView - 快速滚动时神秘地重复自己的行? (模拟器)