修改标题标签的UIButton似乎改变了它的框架

有些奇怪的事情正在发生。 基本上,我正在尝试重新创build消息应用程序。 所以当我试图让用户input至less1个字符时发送button从灰色更改为蓝色。

问题来了,当我试图改变titleLabel,button将消失。 后来我发现它恢复到原来的位置(当键盘没有显示)。

为什么这样做? 如果我不修改标题标签,一切照旧。 但是,如果我这样做,UIButton会回到原来的位置。 如果你需要任何示例代码让我知道,但我不知道该把什么,因为它只是[self.button.titleLabel setTextColor: [UIColor blueColor];UITextViewdidChange但它的行为奇怪。

谢谢! 艾伦

你可能会反对自动布局。 我看到了类似的行为,有人在这里回答我的问题: 当我访问titleLabel属性时,为什么UIButton会resize? 。 基本上,我build议完全放弃自动布局,或使用自动布局(从不设置编程框架)。

就像别人提到的那样,你可能会与自动布局“打架”。 您不必NSLayoutConstraint自动布局,您可以将NSLayoutConstraint绑定到IBOutlet属性,并更新约束。 如果您没有约束条件,则会自动为您创build一个约束 – 您应该手动创build一个并附加约束。 如果它是在代码中创build的,则通过代码查找并保存对其的引用。

你也可以回到更简单的AutoResizing,它在自动布局之前就已经存在了(并且被弃用)。