使用autolayout的UIButton动态宽度

Abh*_*hek 9 objective-c uibutton ios autolayout ios7

我有一个按钮,其中有两个不同的文本处于选中状态和正常状态,当我改变按钮的状态时,编程按钮没有调整大小,因此文本没有正确显示,这是使用autolayout执行此操作的最佳方法吗?

我知道设置出口到UIButton的宽度约束的一种方法并手动更改它但我正在寻找更好的方法

bha*_*vik -2

尝试这个

CGSize maxSize = CGSizeMake(btn.bounds.size.width, CGFLOAT_MAX);
    CGSize textSize1 = [btn.titleLabel.text sizeWithFont:btn.titleLabel.font constrainedToSize:maxSize];

btn.frame=CGSizeMake(10,10,textSize1.width,30);
Run Code Online (Sandbox Code Playgroud)

  • 一般情况下我们不会在自动布局中设置frame (2认同)