如何设置子视图大小与导航栏大小相同?

时间:2015-12-15 10:27:13

标签: ios subview

这里我创建了导航栏,高度为50,宽度为视图大小。现在,我想在导航栏中添加一个子视图,导航栏大小相同。如何设置子视图的帧大小?

ViewController.m

-(void)ViewDidLoad
{
   UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
   [self.view addSubview:navbar];
}

1 个答案:

答案 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,你应该设置一个合适的框架。