我正在开发一个ViewController
,其中一些UI元素为SubViews
但是当我在不同设备上运行应用时,我遇到了这些元素的问题。我正在通过代码做所有事情。我应该使用AutoLayout
吗?我应该如何为这些元素使用autolayout?
我有这些项目:
titleLbl = [[WPCustomLabel alloc] initWithFrame:CGRectMake(30, self.view.frame.size.height/2, 260, 25)];
[titleLbl setFont:[UIFont systemFontOfSize:18]];
[self.view addSubview:titleLbl];
NSLog(@"%f", self.view.bounds.size.height/2);
textLbl = [[WPCustomLabel alloc] initWithFrame:CGRectMake(40, self.view.frame.size.width/2 + 10, 250, 230)];
[textLbl setTextAlignment:NSTextAlignmentJustified];
[self.view addSubview:textLbl];
omitBtn = [[WPCustomButton alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height-108 , self.view.bounds.size.width/2, 44)];
[omitBtn setTitle:@"Omitir" forState:UIControlStateNormal];
[omitBtn addTarget:self action:@selector(omitInfo) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:omitBtn];
nextBtn = [[WPCustomButton alloc] initWithFrame:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height-108, self.view.frame.size.width/2, 44)];
[nextBtn setTitle:@"Siguiente" forState:UIControlStateNormal];
[nextBtn addTarget:self action:@selector(omitInfo) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:nextBtn];
答案 0 :(得分:-1)
如果您使用的是故事板,那么您应该使用自动布局。只需在标签和超视图底部之间设置约束。
如果您不使用故事板,可以覆盖viewWillLayoutSubviews
并根据视图大小设置布局。
答案 1 :(得分:-2)
我个人建议不要使用自动布局但使用此代码
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
if ([[UIScreen mainScreen] bounds].size.height == 480) {
//iPhone 4
}else{
//iPhone
}
}else{
//iPad
}
将此代码分别定义为All object frame。