如何检查UIButton的titleLabel是否超出了按钮的框架?

时间:2015-02-02 17:30:16

标签: ios objective-c uibutton cgrect

检查titleLabel的{​​{1}} text是否过长以至于实际超出按钮大小的最佳方法是什么?防止下面的截图中的情况?我习惯使用UIButton执行此操作并设置属性UILabelminimumScaleFactor,但是当我尝试使用我的按钮执行此操作时,它似乎没有任何效果:

adjustsFontSizeToFitWidth

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以在NSString中使用sizeWithAttributes:方法,如此

NSString *buttonString = @"some string"; // the button's string
    CGSize buttonStringSize = [buttonString sizeWithAttributes:@{NSFontAttributeName : [UIFont fontWithName:<button's font family name> size:<the size of the font>]}];
if (buttonStringSize.width == button.bounds.size.witdh){
  // the text of the button is too long for the button's width, do somthing
}

答案 1 :(得分:0)

查看sizetofit()方法。

self.button.frame = //在此处设置框架
self.button.sizetofit()
self.button.frame = CGRect(x:self.button.frame.origin.x,y:self.button.frame.origin.y,width:self.button.frame.width,height:yourStandardHeightVariable)//设置在这里再次构建,这部分是为了确保它不会扩展太多

免责声明:此代码未经过IDE测试