我想在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/