Nie można wykonać niestandardowego UIButton w iOS6 z włączonym automatycznym układem ujęć w serii ujęć
Stałem wobec dziwnego zachowania. Używam przycisku w stylu niestandardowym, który ustawiłem w moim kontrolerze:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.signOutButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[self.signOutButton setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
CAGradientLayer *btnGradient = [CAGradientLayer layer];
btnGradient.frame = self.signOutButton.bounds;
btnGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:102.0f / 255.0f green:102.0f / 255.0f blue:102.0f / 255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:51.0f / 255.0f green:51.0f / 255.0f blue:51.0f / 255.0f alpha:1.0f] CGColor],
nil];
[self.signOutButton.layer insertSublayer:btnGradient atIndex:0];
}
Działa poprawnie w iOS 5. Ale jeśli buduję to dla iOS 6 z włączonym Autolayout dla Storyboard, to gradient w moim stylu znika / staje się przezroczysty (ale tytuł jest nadal widoczny).
Jeśli wyłączam autolayout - gradient wraca. Czy ktoś mógłby wyjaśnić takie zachowanie za pomocą autolayoutu?