Добавление градиента кнопки перед появлением в iOS - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу использовать градиент для кнопки в 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 голосов
/ 11 февраля 2019

Иногда, задавая вопрос, вы находите свой собственный ответ .... Вот ссылка на сайт, на котором я нашел ответ: имеет решение

Простой ответ:поместить код градиента в viewDidLayoutSubviews вместо viewDidAppear.

...