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

最佳答案

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

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

关于ios - 在iOS中出现之前添加按钮渐变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54635150/

10-13 04:18