[英]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.