我正在玩一些设计概念而且我遇到了这个“错误”。
知道为什么会这样吗?我已经迭代了不同的东西,仍然无法找到罪魁祸首或解决方案。
价格的这个“圆圈”与其底部的另一个单元重叠是我的预期设计。这一切都很好,但是,当我向下滚动并向后滚动时,“较旧的”单元突然重叠“圆圈”。
请看截图。任何帮助深表感谢!!!
有谁之前经历过这个吗?
iOS9 - Xcode 7.3.1
编辑:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCellWithIdentifier("CategoryCell") as? CategoryCell {
cell.selectionStyle = .None
cell.configureCell(dishes[indexPath.row])
return cell
} else {
return UITableViewCell()
}
}
编辑2:经过进一步分析,我确信这与高度无关?我玩过不同的高度,但仍然得到相同的结果。
问题是,即使在向下滚动时,它也能完美地加载,这一切都很好。直到我向上滚动,这就是问题开始出现的地方。
将Clip SubViews(Cell)设置为true将在加载时剪切所有内容,因此我将其设置为false。
剩下的问题是,如何在向上滚动时处理剪辑?
编辑3:我想我现在明白了这个问题,但我仍然不太确定如何解决它。
CircleView放置在一个单元格上,该单元格与其下方的另一个单元格重叠。设置clipsToBounds,height或将其置于前面对其下方的单元格没有影响,因为它在向上滚动时离开显示器。
任何人都有一个想法如何以某种方式重新绘制它就像刚刚装载一样(因为onload,事情正在发挥作用)?或者在其他地方是否有一个clipToBounds设置我错过了?
我认为解决方案与此有关:How to stop UITableView from clipping UITableViewCell contents in iOS 7
但是,此解决方案不适用于ios9。
在cellForRowAtIndexPath:方法中将单元格图层anchorPointZ设置为行索引
cell.layer.anchorPointZ = indexPath.row;
您是否尝试为tableView设置estimatedRowHeight?此外,您可以使用函数heightForRowAtIndexPath并返回UITableViewAutomaticDimension。这应该自动标注每一行以填充圆的大小。
编辑:如果你想将圆圈带到其他一切的前面,试试这个:
YourLabel.layer.zPosition = 1;
self.view.bringSubviewToFront(YourLabel);