Programmatically moving a UILabel in a xib file
问题:我更改帧信息后我的UILabel没有移动但是在用NSLog输出后,帧信息与正确的位置匹配,但标签本身并没有实际移动。
更多信息:我正在尝试将UILabel移动到与UITextField相同的位置。 两者都包含在XIB文件中。 我可以很好地更新文本,输出框架信息将表明标签已移动到正确的位置,但是当您实际在屏幕上查看时,您可以看到标签正好在我手动放置在XIB文件中的任何位置; 它没有动。
代码 - 取自相应的ViewController内部
1 2 3 4 5 6 7 8 9 10 | - (void)viewDidLoad { [super viewDidLoad]; self.photoDescriptionLabel.frame = CGRectMake(self.photoDescription.frame.origin.x,self.photoDescription.frame.origin.y,self.photoDescriptionLabel.frame.size.width,self.photoDescriptionLabel.frame.size.height); self.photoDescription.hidden = YES; self.photoDescriptionLabel.hidden = NO; NSLog(@"x: %f, y: %f, width: %f, height: %f",self.photoDescriptionLabel.frame.origin.x,self.photoDescriptionLabel.frame.origin.y,self.photoDescriptionLabel.frame.size.width,self.photoDescriptionLabel.frame.size.height); } |
我认为您必须在Interface Builder中关闭主视图的"使用Autolayout"标志。 创建新项目时,默认情况下会启用"自动布局"。
尝试这个:
1 2 3 4 | CGRect frame = self.photoDescriptionLabel.frame; frame.origin.x = self.photoDescription.frame.origin.x; frame.origin.y = self.photoDescription.frame.origin.y; self.photoDescriptionLabel.frame = frame; |