如何在ios的tableview中为单元格内的视图添加阴影?

时间:2016-07-18 11:11:21

标签: ios iphone swift uitableview autolayout

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

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

但是当滚动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

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

2 个答案:

答案 0 :(得分:0)

您可以尝试从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
}

答案 1 :(得分:0)

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

相关问题