如何在iOS 7中以编程方式设置UILabel位置
我迁移到Xcode 5并开始为iOS 7编程。我正在尝试手动(以编程方式)设置标签的位置,以便为iPhone4设备和iPhone5设备生成不同的布局。我想这应该很容易,如下所示: 在如何在iOS 7中以编程方式设置UILabel位置,ios,iphone,ios7,uilabel,xcode5,Ios,Iphone,Ios7,Uilabel,Xcode5,我迁移到Xcode 5并开始为iOS 7编程。我正在尝试手动(以编程方式)设置标签的位置,以便为iPhone4设备和iPhone5设备生成不同的布局。我想这应该很容易,如下所示: 在viewDidLoad中: myLabel.autoresizingMask = UIViewAutoresizingNone; myLabel.frame = CGRectMake(10, 10, 280, 21); 至少所有关于StackOverflow的文章都说是这样做的,但它对我不起作用。无论我在CGRec
viewDidLoad
中:
myLabel.autoresizingMask = UIViewAutoresizingNone;
myLabel.frame = CGRectMake(10, 10, 280, 21);
至少所有关于StackOverflow的文章都说是这样做的,但它对我不起作用。无论我在CGRectMake
中输入什么值,标签的位置都不会改变。我甚至在viewWillLayoutSubviews
中尝试了相同的代码,但都不起作用。如果我NSLog
新的坐标,它会告诉我它取了它们,但在模拟器上标签位置没有变化
有什么建议吗?在您的视图中,请尝试致电
[self.view frame]代码>
这将强制重新绘制屏幕。:)
我知道,它看起来像是印度河的代码,但有时它会有所帮助:)我认为您必须关闭Interface Builder中主视图的“使用自动布局”标志。
创建新项目时,默认情况下会启用自动布局
您是否强制屏幕刷新,[yourView setNeedsDisplay]
?您将其添加为某物或self.view的子视图?作为子视图添加。。请检查与父视图的相对关系。尝试在ViewWillDisplaysetNeedsDisplay
中添加标签代码不起作用,我尝试了。ViewWillDisplay
也不起作用。到目前为止,唯一有效的方法是关闭自动布局(建议如下),但我担心由于这个原因,我现在必须手动设置所有内容,我不希望这样。我只想手动设置一些项目。这不会影响我所有项目中的所有视图吗?我希望Autolauout对某些视图(或项目)起作用,但不是对所有视图都起作用。停止它会起作用,但这是否意味着我现在需要手动设置所有视图的位置?您可以在设置了Autolayout和未设置此功能的两个视图上都设置Autolayout,但您必须决定是否在特定视图上使用它。关于这一点,有一个Apple文档:或者您可以尝试将UILabel封装在一个视图中(例如,它是完整视图的大小),并在此视图中禁用AutoLayout。还没有尝试过,但引用的Apple文档提到了一些关于此的词语,并且在Interface Builder中,您可以在每个视图上指定此标志……然后确保您不会在其他方法中更改标签的框架。检查所有VC的方法:viewDidLoad、ViewWillDisplay:、ViewDidDisplay等。。。