我正在研究一些设计概念,但遇到了这个“错误”。
知道为什么会这样吗?我已经遍历了不同的事物,但仍然找不到问题的根源或解决方案。
这个表示价格的“圆圈”与底部的另一个单元格重叠是我的预期设计。这一切都很好,但是,当我向下滚动并返回时,“较旧”的单元格突然与“圆圈”重叠。
请看截图。非常感谢任何帮助!!!
有没有人遇到过这种情况?
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、高度或将其置于最前面对其下方的单元格没有影响,因为它在向上滚动时会远离显示。
任何人都知道如何以某种方式重新绘制它,就像它刚刚加载一样(因为加载,一切正常)?或者我可能在其他地方缺少 clipsToBounds 设置?
我认为解决方案与此有关:How to stop UITableView from clipping UITableViewCell contents in iOS 7
但是,此解决方案不适用于 ios9。
最佳答案
在cellForRowAtIndexPath:方法中设置cell层anchorPointZ为行索引
cell.layer.anchorPointZ = indexPath.row;
关于ios - 向下和向上滚动后 TableView 单元格与 UIView 重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254497/