Ios 自定义UITableViewCell使用新数据重新加载,但不使用新数据绘制
我有一个自定义uitableviewcell,其结构如下Ios 自定义UITableViewCell使用新数据重新加载,但不使用新数据绘制,ios,iphone,uitableview,redraw,Ios,Iphone,Uitableview,Redraw,我有一个自定义uitableviewcell,其结构如下 customCell Content View vertical Stack View title Label horizontal Stack View Label Label horizontal Stack View Label Label 点击时,会有一个到局部视图控制器的序列。返回时,我将在主任务中重新加载table
customCell
Content View
vertical Stack View
title Label
horizontal Stack View
Label
Label
horizontal Stack View
Label
Label
点击时,会有一个到局部视图控制器的序列。返回时,我将在主任务中重新加载tableView
我看到以下情况:
A.没问题:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(workoutCellIdentifier2, forIndexPath: indexPath) as! WorkoutTableViewCell
let workout = appDelegate.persistence.workouts[indexPath.row]
cell.setWorkout(workout, healthData: appDelegate.healthData)
return cell
}
当单元格包含空标签(text==nil)时,单元格的布局过程将优化底线 前两行获得更多的垂直空间 稍后设置标签文本时,布局过程不会反转
setNeedsLayout()
没有帮助。因此,即使现在重绘时包含数据,底线仍然会被优化掉
解决方法:
切勿在单元格中将标签文本设置为零。当没有可用数据时,将其设置为“”
现在,底线永远不会被优化掉。剩余的空白表示有未设置的内容。I当单元格包含空标签(text==nil)时,单元格的布局过程会优化底线 前两行获得更多的垂直空间 稍后设置标签文本时,布局过程不会反转
setNeedsLayout()
没有帮助。因此,即使现在重绘时包含数据,底线仍然会被优化掉
解决方法:
切勿在单元格中将标签文本设置为零。当没有可用数据时,将其设置为“”
现在,底线永远不会被优化掉。还有一个空格,表示有未设置的内容。能否显示您的
单元格for rowatinexpath
代码?以及您的高度for rowatinexpath
。您是否考虑过将两个堆栈视图放置在垂直堆栈视图中,然后根据需要隐藏/取消隐藏较低的水平堆栈视图?您是否看到我下面的答案?隐藏/取消隐藏不是必需的。它是由一些苹果代码自动完成的。这就是问题的原因。dequeueReusableCellWithIdentifier:forIndexPath
从不返回nil,因此它永远不会采用回退路径。您是否在setWorkout
或prepareforeuse
中正确地重新配置了单元格?能否显示您的cellForRowAtIndexPath
代码?以及您的rowatindexpath
高度。您是否考虑过将两个堆栈视图放置在垂直堆栈视图中,然后根据需要隐藏/取消隐藏较低的水平堆栈视图?您是否看到我下面的答案?隐藏/取消隐藏不是必需的。它是由一些苹果代码自动完成的。这就是问题的原因。dequeueReusableCellWithIdentifier:forIndexPath
从不返回nil,因此它永远不会采用回退路径。您是否在setWorkout
或prepareforeuse
中正确重新配置单元格?