在iOS中,我们可以设置UIButton并获取其宽度,还是必须设置其宽度然后设置其内容?
似乎我们可以
[someString sizeWithFont:someFont].width
获取宽度,然后将其设置为按钮的宽度(通过设置其框架),然后设置该标题和字体。但是我们可以设置按钮的字体和标题(并自动调整按钮),然后获得宽度吗?
答案 0 :(得分:8)
使用UIView的sizeToFit
方法(http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW11)
[button setTitle:@"Hello World" forState:UIControlStateNormal];
[button sizeToFit];
float width = button.frame.size.width;
答案 1 :(得分:0)
sizeToFit 会起作用,但它不会给你很大的灵活性,因为它会包裹文本的宽度和高度。一个更好的方法是找出你可以用这个做的尺寸...
(iOS 8及以上版本)
CGSize buttonSize = [button.titleLabel sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:NSFontAttributeName ,[UIFont fontWithName:@"HelveticaNeue-Bold" size:9.0], nil]].width;
(iOS 7及以下)
CGSize buttonSize = [button.titleLabel sizeWithFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:9.0]].width;
然后你可以通过使用 buttonSize
调整框架来添加边距等[button setFrame:CGRectMake(0, 0, buttonSize.width + 20, buttonSize.height)];