我正在使用
制作一个视图dashboardView.layer.cornerRadius = dashboardView.frame.height/2
它正在发挥作用。然后我用这个方法改变了我的View的高度和宽度
dashboardView.frame = CGRect(x: screenSize.width/2,y: 300,width: 200,height: 200)
现在,当我尝试使用相同的方法进行循环时,它不起作用。 我还使用此方法在视图上添加了渐变图层
let gradient: CAGradientLayer = CAGradientLayer()
let endingColorOFGradient = UIColor(colorLiteralRed: 133/255, green: 210/255, blue: 230/255, alpha: 1.0).CGColor
let startingColorOfGradient = UIColor(colorLiteralRed: 50/255, green: 189/255, blue: 170/255, alpha: 1.0).CGColor
gradient.startPoint = CGPoint(x: 1.0, y: 0.5)
gradient.endPoint = CGPoint(x: 0.0, y: 0.5)
gradient.frame = CGRect(x: 0, y: 0, width: dashboardView.layer.frame.width, height: dashboardView.layer.frame.height)
gradient.colors = [startingColorOfGradient , endingColorOFGradient]
self.dashboardView.layer.insertSublayer(gradient, atIndex:0)
// making gradient round
gradient.cornerRadius = dashboardView.frame.height/2
在更改View渐变的大小后,图层会变圆,但我的视图不会。
答案 0 :(得分:5)
设置渐变后再次调用dashboardView.layer.cornerRadius = dashboardView.frame.height/2
因为您正在更改框架,因此它的高度应该不同,因此您的dashboardView.frame.height/2
具有不同的值。
如果需要,请尝试将clipstobounds
设置为true
{/ 1}}。
答案 1 :(得分:2)
问题是Autolayout约束。
我试图改变视图的大小,但Autolayout正在把它放回去。所以我创建了我的高度和宽度约束的出口并相应地改变了它。