基本上标题解释了问题。使用XCode,我有这个按钮,我用不同的文本源填充它的标题(有些是长文本,有些是短文本)。我只是希望按钮使用Autolayout动态调整内容大小。
事情不起作用:
sizeToFit
; 似乎没有人知道互联网,我想知道它怎么可能?我认为是按钮的最常见功能之一。
有人知道帮助我的方法吗?我这个想法有问题吗?还有其他方法可以达到这个目的吗?
感谢任何愿意回答的人。真。
答案 0 :(得分:1)
好的,我找到了这个解决方案:
NSAttributedString *text = [[NSAttributedString alloc] initWithString:[self titleForState:UIControlStateNormal] attributes:nil];
CGRect rect = [text boundingRectWithSize:(CGSize){287, CGFLOAT_MAX}
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
NSLayoutConstraint *buttonConstraint = [NSLayoutConstraint
constraintWithItem:self
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem: nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0f
constant:rect.size.height];
[self addConstraint:buttonConstraint];
哪个有效,但只有一次。我的意思是:一旦新标题填充了标题标签,它就说已经存在约束而且它不再起作用......
答案 1 :(得分:-2)
你可以这样做
CGSize stringsize = [myString sizeWithFont:[UIFont systemFontOfSize:14]];
//or whatever font you're using
[button setFrame:CGRectMake(10,0,stringsize.width, stringsize.height)];