Text UIButton文本未换行到多行

Text UIButton文本未换行到多行,text,ios6,uibutton,word-wrap,Text,Ios6,Uibutton,Word Wrap,我有一个问题,三个UIButton上的文本在Interface Builder中被包装成几行,但是当我运行代码时,文本比按钮大,并且只在一行中。我尝试设置NSLineBreakMode和NSTextAlignment,但两者都没有帮助。 在Interface Builder中,它的正确外观如下:而在模拟器上,它的外观如下:。有什么想法吗? 提前谢谢。你的例子肯定有些奇怪;我无法复制它。您必须对问题提供的信息中未描述的按钮执行某些操作。如果您将按钮换行模式设置为文字换行(在笔尖中),并且如果您的约

我有一个问题,三个UIButton上的文本在Interface Builder中被包装成几行,但是当我运行代码时,文本比按钮大,并且只在一行中。我尝试设置NSLineBreakMode和NSTextAlignment,但两者都没有帮助。 在Interface Builder中,它的正确外观如下:而在模拟器上,它的外观如下:。有什么想法吗?
提前谢谢。

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

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

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

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

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

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

您是否尝试将uibutton的titleLabel.numberOfLines设置为2或0?是的,我以前尝试过,但没有任何帮助。此外,在尝试使自动布局在横向模式下工作之前,它运行良好:(可能是重复的Nope,他的答案对我没有帮助。它在IB中工作,而在实际应用程序中不工作对我来说也有点奇怪。你是否尝试将uibutton的titleLabel.numberOfLines设置为2或0?是的,我以前尝试过,但没有帮助。此外,在尝试在横向模式下使用自动布局之前,它都工作得很好:(可能是Nope的重复,他的答案对我没有帮助。它在IB中工作,而不是在实际应用程序中,这对我来说也有点奇怪。谢谢……我知道这很奇怪,但当我知道IB有时会表现得很奇怪(导航栏消失等)。我已经通过几行代码解决了这个问题:
-(void)viewDidLayoutSubviews{self.buttonOne.titleLabel.preferredMaxLayoutWidth=self.buttonOne.frame.size.width;self.buttonOne.titleLabel.numberOfLines=0;self.buttonOne.titleLabel.lineBreakMode=NSLineBreakByWordWrapping;self.buttonOne.titleLabel.textAlignment=NSTextTextAlignmentCenter;[self.view layoutSubviews];}
然而,如果我重新添加按钮,我的整个布局就会中断:/谢谢……我知道这很奇怪,但随着我逐渐了解IB有时会表现得很奇怪(导航栏消失等)。我通过几行代码解决了这个问题:
-(void)viewdilayoutsubviews{self.buttone.titleLabel.preferredMaxLayoutWidth=self.buttone.frame.size.width;self.buttone.titleLabel.numberOfLines=0;self.buttone.titleLabel.lineBreakMode=NSLineBreakByWordWrapping;self.buttone.titleLabel.textAlignment=NSTextAlignmentCenter;[self.view layoutSubviews];}
但是,如果我重新添加按钮,我的整个布局就会中断:/