我在一个单独的UILabel
文件中有一个nib
的视图。我在nib
的{{1}}方法中加载了这个viewWillAppear:
文件,我正试图在那里设置UIViewController
的{{1}}属性,这样:
textAlignment
但是当我运行应用程序时,文本不会居中,即使我在UILabel
中设置对齐(我可以在Xcode的IB中看到文本居中)。这是iOS 7+的应用程序,我正在使用Xcode 6.1.1。为什么这不起作用?
由于
答案 0 :(得分:4)
我猜问题来自:
[((MyView *)self.customView).myLabel sizeToFit];
居中不会更改标签的frame.origin.x
。
但是,如果您之后应用sizeToFit
,则所有内容都将在较小的区域中居中(不会更改x偏移量),并且会感觉它不再居中。
答案 1 :(得分:2)
您正在调用[((MyView *)self.customView).myLabel sizeToFit];
并从文档sizeToFit
调用#34;调整大小并移动接收器视图,使其只包含其子视图。"。
如果文字填满标签,您就无法将文字置于UILabel
中心。
尝试删除此方法调用,看看会发生什么。
答案 2 :(得分:2)
对于具有NSTextAlignmentCenter的UILabel,您可以将标签居中,如下所示:
float w = self.view.frame.size.width;
title.text = @"What do you want to say?";
[title sizeToFit];
title.frame = CGRectMake((w-title.frame.size.width)/2, title.frame.origin.y, title.frame.size.width, title.frame.size.height);
答案 3 :(得分:0)
[((MyView *)self.customView).myLabel sizeToFit];
删除此行...
答案 4 :(得分:0)
写下这行代码
((MyView *)self.customView).myLabel.textAlignment = NSTextAlignmentCenter;
之后
[self.view addSubview:self.customView];