繁体   English   中英

如何移动由Interface Builder放置的文本字段和按钮

[英]How to move a Textfield and Button placed by Interface Builder

我在3.5英寸iPhone的Interface Builder中放置了一个文本框和一个按钮。 我会以编程方式检查它是否为iPhone 5,如果是,则为文本字段和按钮。 我在视图控制器,文本字段和按钮上未选中“自动调整子视图”。 我拥有的代码位于viewDidLoad中,如果它是iPhone 5,它会碰到行,但不会移动文本字段或按钮。

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 568)
    {
        self.chatBox.frame = CGRectMake(20,509,201,30);
        self.submitButton.frame = CGRectMake(227,504,73,39);

        [self.view addSubview:self.chatBox];
        [self.view addSubview:self.submitButton];
    }
}

如果使用自动布局,则约束可能会优先于上述代码。 没有自动布局,我使用以下代码:

    int adjustY=44;
    CGPoint iPhone5center=CGPointMake(theButton.center.x,theButton.center.y+adjustY);
    theButton.center=iPhone5center; 

有关更多详细信息,请参见此问题 我在滚动视图中将其与自动布局一起使用时遇到问题。

您在这里遇到的问题是该框架已被自动版式覆盖。 在使用自动布局调整视图上的框架之前,请添加以下代码行:

[self setTranslatesAutoresizingMaskIntoConstraints:YES];

这应该将您设置的任何框架转换为新约束并进行更新。 如果您不想将它们转换为约束,显然只需在此消息中传递“ NO”即可实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM