问题: 我的 UILabel 在我更改其帧信息后不移动,但在使用 NSLog 输出后,帧信息与正确位置匹配,但标签本身实际上并未移动。

更多信息: 我正在尝试将 UILabel 移动到与 UITextField 相同的位置。两者都包含在一个 XIB 文件中。我可以很好地更新文本,输出帧信息将表明标签已移动到正确的位置,但是当您实际查看屏幕时,您可以看到标签正是我手动将其放置在 XIB 文件中的任何位置;它没有移动。
photoDescriptionLabel 是我试图放在 photoDescription 之上的 UILabel,ojit_code 是一个 UITextField。文本字段变得不可见和可见,因此您只能看到标签,直到编辑它为止,此时我隐藏标签并使文本字段可见。

代码 - 取自对应的 ViewController

- (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 中关闭主 View 的“使用自动布局”标志。创建新项目时默认启用自动布局。

关于iphone - 以编程方式在 xib 文件中移动 UILabel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21042733/

10-14 20:02
查看更多