【问题标题】:How to add shadow to a view inside cell in tableview in ios?如何在 ios 的 tableview 中的单元格内的视图中添加阴影?
【发布时间】:2016-11-20 23:20:40
【问题描述】:

我在 XIB 中创建了一个 tableviewcell,并通过注册类在 tableview 中使用它。我在这里使用autolayout

但问题是当我在viewcontroller 中加载tableview 时,单元格内的视图阴影设置不正确。它超出了它的界限,如我用红色框显示的图片中所示。

但是当滚动 tableview 时,视图的阴影会按预期正确显示。

cellForRowAtIndexPath中使用的代码如下所示:

let layer = cell.cellContectView.layer
        layer.shadowOffset = CGSizeMake(1.0, 1.0)
        layer.shadowColor = UIColor.blackColor().CGColor
        layer.shadowRadius = 5
        layer.shadowOpacity = 0.2
        layer.masksToBounds = false
        layer.shadowPath = UIBezierPath(rect: layer.bounds).CGPath

请注意:文字模糊不是问题。出于安全原因将其隐藏

【问题讨论】:

    标签: ios iphone swift uitableview autolayout


    【解决方案1】:

    使用 QuartzCore 代码在 UITableViewCell 内添加阴影 - 会显着降低滚动性能。
    最好创建阴影图形资源并将其添加为UIImageView

    【讨论】:

      【解决方案2】:

      您可以尝试从 cellForRowAtIndexPath 中删除图层的代码并将其放入您的单元类中:

      override func prepareForReuse() {
          let layer = self.contentView.layer
          layer.shadowOffset = CGSizeZero
          layer.shadowColor = UIColor.blackColor().CGColor
          layer.shadowRadius = 5
          layer.shadowOpacity = 0.2
          layer.masksToBounds = false
          layer.shadowPath = UIBezierPath(rect: layer.bounds).CGPath
      }
      

      【讨论】:

      • 我试过了..但它使单元格阴影总是错误的,如图所示..滚动时它甚至不会改变
      • 底部的灰色视图是另一个子视图?
      • 是的。它像单元格内容视图有一个带有标签和图像的视图,并且正如您所问的那样,带有开始的底部视图被添加为带有标签和图像的视图中的子视图
      • 在这种情况下,您还需要为视图指定一个角半径,以避免在内容视图之外出现这个白色角。
      • clipstobounds 不可用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      相关资源
      最近更新 更多