2012-03-05 32 views
3

我已经实现了一个自定义按钮,如下所示。如何在iPhone中根据它调整自定义按钮的大小文字

UIButton *mainBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[mainBtn setTitle:@"Meeting" forState:UIControlStateNormal]; 
[mainBtn setFrame:CGRectMake(80, 7, 72, 35)]; 
[mainBtn setBackgroundImage:[UIImage imageNamed:@"buttonActive.png"] forState:UIControlStateNormal]; 
mainBtn.contentEdgeInsets = UIEdgeInsetsMake(18, 5, 18, 10); 
[mainBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 

这里按钮标题将是动态的。所以现在我需要根据标题dynamicaly的长度来改变按钮的宽度。 CGRectMake与给定的宽度不会工作。有人能帮我做到吗?

+0

这应该是诀窍... http://stackoverflow.com/a/4978003/716216 – 2012-03-05 11:05:02

回答

6

只需使用下面的代码,

CGSize expectedLabelSize = [mainBtn.titleLabel.text sizeWithFont:mainBtn.titleLabel.font]; 
mainBtn.frame = CGRectMake(x, y, expectedLabelSize.width+10, expectedLabelSize.height); 
0

甲simpel解决方案将是[mainBtn sizeToFit]; 但我不知道这是否考虑到了您的edgeInsets。

相关问题