【发布时间】:2018-03-30 08:28:46
【问题描述】:
我已将 CAGradientLayer 添加到 UIView 中,该 UITableViewCell 已在其中。这个 UIView 有来自UITableViewCellcontentView 的 20 个trailing 和leading 空间。但是 UIView 在运行时会溢出。
var gradientLayer: CAGradientLayer!
@IBOutlet weak var view: UIView!
func createGradientLayer() {
gradientLayer = CAGradientLayer.init(layer: view.layer)
gradientLayer.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
// gradientLayer.frame = CGRect(x: 0, y: 0, width: self.contentView.frame.size.width, height: )
let colory: UIColor = UIColor(red: 0, green: 189/255, blue: 237/255, alpha: 1.0)
gradientLayer.colors = [UIColor.ceruleanBlue.cgColor, colory.cgColor]
gradientLayer.startPoint = CGPoint.init(x: 0.0, y: 0.5)
gradientLayer.endPoint = CGPoint(x:1.0,y: 0.5)
// self.view.layer.mask = gradientLayer
self.view.layer.insertSublayer(gradientLayer, at: 0)
}
然后在 cellForRow 方法中,我是这样使用的:
if indexPath.row == 0{
let cell = tableView.dequeueReusableCell(withIdentifier: "statisticsCell") as! StatisticsCommentCell
// cell.frame.size.width = UIScreen.main.bounds.size.width
cell.view.translatesAutoresizingMaskIntoConstraints = false
return cell
}
如果我改变了 gradientLayer.frame 如下:
gradientLayer.frame.size.width = self.view.frame.width
gradientView 没有溢出,但似乎只有ceruleanBlue 颜色。
我不知道如何为我的UIView 解决这个问题。
有什么想法吗?提前致谢。
这是一个模拟器的截图,有溢出问题:
提示:通常UIView 已经在UITableViewCell 的contentView 的尾随和前导。
另一个问题是当我添加 maskToBounds 时,视图如下所示
UIView 的所有约束
【问题讨论】:
-
您可以发布您的问题的图片吗?
-
@ReinierMelian 编辑了问题
-
你有这个视图的宽度限制的IBoutlet吗?你能在故事板上显示这个视图的所有约束的截图吗
-
在你的视图中添加 maskToBounds = true
-
@ReinierMelian 我刚刚添加了 maskToBounds 但是 UIView 没有渐变了,正常吗?
标签: ios swift uitableview cagradientlayer