如何在ios的tableview中将阴影添加到单元格内的视图?
我在XIB中创建了一个如何在ios的tableview中将阴影添加到单元格内的视图?,ios,iphone,swift,uitableview,autolayout,Ios,Iphone,Swift,Uitableview,Autolayout,我在XIB中创建了一个tableviewcell,并使用注册类在tableview中使用它。我在这里使用的是autolayout 但问题是当我在viewcontroller中加载tableview时,单元格内视图的阴影设置不正确。它超出了我在带有红色框的图片中所示的界限 但是当滚动表视图时,视图的阴影会按预期正确显示 cellforrowatinexpath中使用的代码如下所示: let layer = cell.cellContectView.layer layer.shado
tableviewcell
,并使用注册类在tableview
中使用它。我在这里使用的是autolayout
但问题是当我在viewcontroller
中加载tableview
时,单元格内视图的阴影设置不正确。它超出了我在带有红色框的图片中所示的界限
但是当滚动表视图时,视图的阴影会按预期正确显示
cellforrowatinexpath
中使用的代码如下所示:
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
请注意:模糊文本不是问题。出于安全原因,它是隐藏的您可以尝试从cellForRowAtIndexPath中删除该层的代码,并将其放入您的cell类中:
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
}
使用QuartzCore
code在UITableViewCell
中添加阴影会显著降低滚动性能。
最好创建阴影图形资源,并将其添加为UIImageView
我尝试过。。但它使细胞阴影总是错误的,如图所示。。滚动时它甚至不会改变底部的灰色视图是另一个子视图?是的。。其类似的单元格内容视图有一个带有标签和图像的视图,并且正如您所要求的那样,已启动的底部视图被添加为带有标签和图像的视图中的子视图。在这种情况下,您还需要为视图指定一个角半径,以避免在内容视图外出现此白色角。clipstobounds不可用