1

我的问题是,三个 UIButtons 上的文本在 Interface Builder 中被换成了几行,但是当我运行代码时,文本比按钮大,而且只有一行。我尝试设置 NSLineBreakMode 和 NSTextAlignment,但都没有帮助。在 Interface Builder 中,它看起来像这样:http: //imgur.com/WplkqQV,而在模拟器上它看起来像这样:http: //imgur.com/0YPpEfU。有任何想法吗?提前致谢。

4

1 回答 1

1

你的例子肯定有一些很奇怪的地方。我无法重现它。您必须对问题提供的信息中未描述的按钮执行某些操作。如果您将按钮换行模式设置为自动换行(在笔尖中),并且如果您的约束是合理的,以便按钮可以横向变宽而纵向变窄,那么它将以纵向而不是横向换行,我相信这就是你想要的。这是我机器上模拟器中按钮的屏幕截图(忽略按钮的实际宽度;这只是一个示例;重要的是文本换行):

在此处输入图像描述

在此处输入图像描述

然而,真正的问题是高度。你会注意到这并没有改变。这是因为圆形矩形按钮具有固有的高度值。如果你想改变高度,为被包裹的文本腾出更多的垂直空间,你可能需要在旋转后对布局过程进行子类化或干预。例如,我得到了很好的结果,如下所示:

-(void)viewDidLayoutSubviews {
    CGRect f = self.button.bounds;
    if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
        f.size.height = 44;
    else
        f.size.height = 60;
    self.button.bounds = f;
}

在此处输入图像描述

于 2013-04-24T18:05:20.913 回答