私はthis posterと同様の問題がありました。 jrturtonの提案を使って、ボタンをカスタマイズするためのコードをviewDidLayoutSubviews
に移動しました。自動レイアウトエラー
'NSInternalInconsistencyException', reason: 'Auto Layout still required after sending -viewDidLayoutSubviews to the view controller. ViewController's implementation needs to send -layoutSubviews to the view to invoke auto layout.'
私は、グラフィックスに非常に無知だ、と私は考えることができる唯一の事は[self.view layoutSubviews];
を置くためにそれは何も解決しませんでした:私はこのエラーを受信するまで、それはうまく働いていました。私のストーリーボードで「自動レイアウト」のチェックを外すと機能しましたが、それはボタンの大きさを変えました。それを修正する別の方法があるのだろうかと思いました。
コード:
-(void)viewDidLayoutSubviews {
NSArray *arrayOfButtons = [NSArray arrayWithObjects:self.decimalButton, self.buttonOne, self.buttonTwo, self.buttonThree, nil];
for (UIButton *button in arrayOfButtons) {
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
button.layer.borderWidth = 0.25f;
button.layer.borderColor = [[UIColor grayColor] CGColor];
CAGradientLayer *btnGradient = [CAGradientLayer layer];
btnGradient.frame = button.bounds;
btnGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:122.0f/255.0f green:188.0f/255.0f blue:255.0f/255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:96.0f/255.0f green:171.0f/255.0f blue:248.0f/255.0f alpha:1.0f] CGColor],
nil];
[button.layer insertSublayer:btnGradient atIndex:0];
}
}
'[super viewDidLayoutSubviews]'を呼び出すのはどうですか?ドキュメントは、デフォルトの実装は何もしませんが、試してみる価値があると言います。 –