我想在iOS中为按钮使用渐变,但是由于按钮的框架(button.layer.bounds)由于“自动布局”而改变,我发现我必须将insertSublayer放入viewDidAppear方法中-这意味着按钮首先出现时没有渐变,然后使用渐变进行重新绘制。无论如何,是否有必要在viewWillAppear中获得最终的按钮大小,以便在出现之前可以应用正确的大小渐变?
这是我现在的操作方式:
- (void)viewDidAppear:(BOOL)animated{
CAGradientLayer *gradient1=[CAGradientLayer layer];
gradient1.colors=[NSArray arrayWithObjects:(id)light.CGColor,(id)dark.CGColor,nil];
gradient1.cornerRadius=10;
gradient1.frame=_go_button.layer.bounds;
gradient1.borderColor=dark.CGColor;
gradient1.borderWidth=1;
[_go_button.layer insertSublayer:gradient1 atIndex:0];
答案 0 :(得分:0)
有时候,通过提问,您可以找到自己的答案。...这是我找到答案的网站的链接:has the solution
简单的答案是将渐变代码放入viewDidLayoutSubviews中而不是viewDidAppear中。