根据标题自动调整UIButton高度 – AutoLayout ON

基本上标题解释了这个问题。 使用XCode,我有这个button,我用不同的文本来源填充它的标题(有些是长文本一些短)。 我只是希望该button使用Autolayoutdynamic调整内容。

事情不起作用:

  • sizeToFit ;
  • 设置高度约束> = x;
  • 设置button的框架高度= titleLabel高度。

似乎没有人知道互联网,我不知道怎么可能? 我认为是一个button的最常见的function之一。

有人知道一个办法来帮助我吗? 我在做这个想法有什么问题吗? 有没有其他方法来实现这一目标?

谢谢任何会回答的人。 真。

好的我发现这个解决scheme:

 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]; 

哪个工作,但只有一次。 我的意思是:一旦新的标题填入titleLabel它说,已经有一个约束,它不工作了… …

你可以这样做

 CGSize stringsize = [myString sizeWithFont:[UIFont systemFontOfSize:14]]; //or whatever font you're using [button setFrame:CGRectMake(10,0,stringsize.width, stringsize.height)];