1

iOSでは、UIButtonを設定してその幅を取得できますか、それともその幅を設定してからそのコンテンツを設定する必要がありますか?

できるようです

[someString sizeWithFont:someFont].width

幅を取得し、ボタンの幅に設定して(フレームを設定することにより)、そのタイトルとフォントを設定します。しかし、ボタンのフォントとタイトルを設定して(そしてボタンのサイズを自動化して)、代わりに幅を取得することはできますか?

4

2 に答える 2

9

sizeToFitUIViewのメソッドを使用します( 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;
于 2012-07-19T15:27:35.837 に答える
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)];
于 2015-04-29T02:48:59.593 に答える