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

时间:2013-09-24 18:21:10

标签: ios objective-c uibutton

发生了一些奇怪的事情。基本上,我正在尝试重新创建消息传递应用程序。因此,当我尝试在用户键入至少1个字符时,将“发送”按钮从“灰色”更改为“蓝色”。

问题出现在我尝试更改titleLabel时,按钮将消失。后来我发现它恢复到原来的位置(键盘没有显示)。

为什么这样做?如果我不修改titleLabel一切正常。但是,如果我这样做,UIButton会回到原来的位置。如果您需要任何示例代码让我知道,但我不知道该放在什么地方,因为[self.button.titleLabel setTextColor: [UIColor blueColor];只是UITextViewdidChange,但它表现得很奇怪。

谢谢! 艾伦

2 个答案:

答案 0 :(得分:1)

你可能会反对自动布局。我看到了类似的行为,有人在这里回答了我的问题:Why does UIButton resize when I access titleLabel property?。基本上,我被建议完全放弃自动布局或使用自动布局(从不以编程方式设置帧)。

答案 1 :(得分:1)

正如其他人所提到的那样,你可能会与自动布局“战斗”。您不必抛弃自动布局,只需将NSLayoutConstraint绑定到IBOutlet属性,然后更新约束即可。如果您没有约束,则会自动为您创建一个约束 - 您应该手动创建一个并附加它。如果它是在代码中创建的,则按代码查找并保存对它的引用。

您还可以回到更简单的AutoResizing,这是在自动布局之前(并且已弃用)。