这里我创建了导航栏,高度为50,宽度为视图大小。现在,我想在导航栏中添加一个子视图,导航栏大小相同。如何设置子视图的帧大小?
ViewController.m
-(void)ViewDidLoad
{
UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
[self.view addSubview:navbar];
}
答案 0 :(得分:0)
首先,您的代码不会响应方向更改(纵向/横向处理),也不支持拆分屏幕。要修复它,而不是在viewDidLoad
中设置框架(在btw中你不要调用super
!)写道:
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
[self.navBar setFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
}
然后,由于它是一个不同的视图,您应该创建视图的子类。代码将以@raghu写的方式工作,但它不容易维护并且质量低。分开关注!
在UIView
子类中,你应该实现init
方法和layoutSubviews
,你应该设置一个合适的框架。