在向下滚动和向上滚动后,TableView单元格重叠UIView

pha*_*e04 3 uitableview ios swift ios9 xcode7

我正在玩一些设计概念而且我遇到了这个"错误".

知道为什么会这样吗?我已经迭代了不同的东西,仍然无法找到罪魁祸首或解决方案.

价格的这个"圆圈"与其底部的另一个单元重叠是我的预期设计.这一切都很好,但是,当我向下滚动并向后滚动时,"较旧的"单元突然重叠"圆圈".

请看截图.任何帮助深表感谢!!!

有谁之前经历过这个吗?

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()
    }

}
Run Code Online (Sandbox Code Playgroud)

手机截图

编辑2: 经过进一步分析,我确信这与高度无关?我玩过不同的高度,但仍然得到相同的结果.

问题是,即使在向下滚动时,它也能完美地加载,这一切都很好.直到我向上滚动,这就是问题开始出现的地方.

将Clip SubViews(Cell)设置为true将在加载时剪切所有内容,因此我将其设置为false.

剩下的问题是,如何在向上滚动时处理剪辑?

故事板

编辑3: 我想我现在明白了这个问题,但我仍然不太确定如何解决它.

CircleView放置在一个单元格上,该单元格与其下方的另一个单元格重叠.设置clipsToBounds,height或将其置于前面对其下方的单元格没有影响,因为它在向上滚动时离开显示器.

任何人都有一个想法如何以某种方式重新绘制它就像刚刚装载一样(因为onload,事情正在发挥作用)?或者在其他地方是否有一个clipToBounds设置我错过了?

我认为解决方案与此有关:如何阻止UITableView剪辑iOS 7中的UITableViewCell内容

但是,此解决方案不适用于ios9.

Jey*_*san 5

在cellForRowAtIndexPath:方法中将单元格图层anchorPointZ设置为行索引

cell.layer.anchorPointZ = indexPath.row;
Run Code Online (Sandbox Code Playgroud)

  • 天哪,你是个巫师! (2认同)
  • 编辑了一下:cell.layer.anchorPointZ = CGFloat(indexPath.row) (2认同)