UILabel的NSTextAlignmentCenter无法正常工作

时间:2015-02-18 09:15:08

标签: ios uilabel xib text-alignment

我在一个单独的UILabel文件中有一个nib的视图。我在nib的{​​{1}}方法中加载了这个viewWillAppear:文件,我正试图在那里设置UIViewController的{​​{1}}属性,这样:

textAlignment

但是当我运行应用程序时,文本不会居中,即使我在UILabel中设置对齐(我可以在Xcode的IB中看到文本居中)。这是iOS 7+的应用程序,我正在使用Xcode 6.1.1。为什么这不起作用?

由于

5 个答案:

答案 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];