代码之家  ›  专栏  ›  技术社区  ›  user5762284

UITableViewCell上的阴影性能不佳

  •  1
  • user5762284  · 技术社区  · 9 年前

    我正在创建带有自定义单元格的表格视图,看起来像新闻提要——在灰色背景上有圆角和阴影的矩形。

    虽然 cellForRowAtIndexPath 方法正在调用我正在设置阴影,如下所示:

    cell.postCard.layer.cornerRadius = 3
    cell.postCard.layer.shadowColor = UIColor.darkGrayColor().CGColor
    cell.postCard.layer.shadowOffset = CGSizeMake(0,1)
    cell.postCard.layer.shadowRadius = 3
    cell.postCard.layer.shadowOpacity = 0.5
    cell.layer.shadowPath = UIBezierPath(rect: cell.postCard.layer.bounds).CGPath
    

    其中postCard是UIView-它是单元格所有上下文的容器。

    我读到我需要添加shadowPath以获得良好的性能,但我认为它不起作用,因为当我缓慢移动表视图时会出现结巴。可能是使用模拟器而不是真实设备的原因吗?

    3 回复  |  直到 9 年前
        1
  •  1
  •   Shaman    9 年前

    您正在设置单元格图层的阴影路径,同时修改cell.postCard的阴影设置

    cell.postCard.layer.shadowOpacity = 0.5
    cell.layer.shadowPath = UIBezierPath(rect: cell.postCard.layer.bounds).CGPath
    

    这真的是你需要的吗?

        2
  •  0
  •   user2990759    7 年前

    此外,您应该设置“单元格”。clipsToBounds=false。

        3
  •  0
  •   Oleg Gordiichuk    7 年前

    尝试 read 关于 should​Rasterize 以及它如何处理UI元素的阴影和角半径。您可以通过操纵 应该光栅化 价值