stu*_*ped 26 objective-c uibutton ios autolayout
我对这张海报有类似的问题.我使用了jrturton的建议来移动用于自定义按钮的代码viewDidLayoutSubviews.它一直运行良好,直到我收到此错误:
'NSInternalInconsistencyException',原因:'将-viewDidLayoutSubviews发送到视图控制器后仍需要自动布局.ViewController的实现需要将-layoutSubviews发送到视图以调用自动布局.
我对图形非常无能为力,我唯一能想到的就是放弃,[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];
}
}
Run Code Online (Sandbox Code Playgroud)
小智 66
我最近遇到了这个问题,当时我想通过提供viewDidLayoutSubviews消息处理程序以编程方式调整故事板创建的视图的框架.按照异常消息的指示,我试着[self.view layoutIfNeeded]在最后添加-viewDidLayoutSubviews,然后它工作.
| 归档时间: |
|
| 查看次数: |
6947 次 |
| 最近记录: |