3

我正在ViewController使用一些 UI 元素开发一个,SubViews但是当我在不同的设备上运行应用程序时,我遇到了这些元素的问题。我正在通过代码做所有事情。我应该使用AutoLayout吗?我应该如何为这些元素使用自动布局?

iphone5(4英寸)

iphone 4 (3.5 英寸)

我有这些物品:

    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];
4

2 回答 2

-1

如果您使用情节提要,那么是的,您应该使用自动布局。只需在标签和超级视图底部之间设置一个约束。

在此处输入图像描述

如果您不使用情节提要,则可以viewWillLayoutSubviews根据视图的大小覆盖和设置布局。

于 2013-10-30T17:35:46.953 回答
-2

我个人建议不要使用自动布局,但使用了这段代码

if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
    if ([[UIScreen mainScreen] bounds].size.height == 480) {
        //iPhone 4
    }else{
        //iPhone 
    }
}else{
    //iPad
}

这段代码分别定义了所有对象框架。

于 2013-10-30T17:40:44.903 回答