我对ios很新。我正在开发一个项目,它经常在整个应用程序中使用某个UIView类。这个类只是一个用背景颜色做一些透明度的图像。这到目前为止工作正常。这个类有时作为单独的UIView存在,有时作为按钮子视图存在。
当我将这个UIVut添加到UIButton作为子视图时,UIView的全部内容以完整大小显示,但按钮的可点击区域保持xib中定义的大小,除非关闭Use Autolayout(即使我手动尝试设置按钮的框架。)
我想在xib上放置一个UIButton作为占位符,然后根据初始化的UIView的叠加图像的大小定义其大小/可点击区域。
这是可能的,还是我误解了xib文件/ autolayout的使用?
在ViewDidLoad下我有......
- (void)viewDidLoad{
[theButton addSubview:_theView];
CGRect buttonFrame = theButton.frame;
buttonFrame.size = CGSizeMake(_theView.getSize.width,_theView.getSize.height);
[theButton setFrame:buttonFrame];
}
但是,当我尝试调用setFrame之前和之后打印按钮信息时,框架保持相同的大小。
(请注意'我添加了_theView.getSize')
答案 0 :(得分:6)
viewDidLoad
处没有框架。在viewWillAppear:
或viewDidLayoutSubviews
中尝试使用您的代码。 |-[theView]-|
但它将取决于您的xib中存在的约束。