在iOS中出现之前添加按钮渐变

时间:2019-02-11 16:38:45

标签: ios button gradient

我想在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];

1 个答案:

答案 0 :(得分:0)

有时候,通过提问,您可以找到自己的答案。...这是我找到答案的网站的链接:has the solution

简单的答案是将渐变代码放入viewDidLayoutSubviews中而不是viewDidAppear中。