背景:UIToolBar
には3つのボタンがあります。私は中心にあるものを全てUIToolBar
に入れてUIView
にすることですべてを集中させました。タイトルが広すぎる場合は、UIBarButtonItemのサイズを変更してください。
途中のボタンのタイトルが大きくなり過ぎると、それは離れているように見えます。 その後、左または右のボタンの下に表示されます。
大きすぎるとサイズを変更できるように、UIToolBar
またはUIBarButtonItems
の幅を取得できません。 'UIBarButtonItem'には本当に素晴らしいwidth
プロパティがあり、大きすぎるとコントロールのサイズを変更できます。 しかし、大きすぎるときはわかりません!
EDIT:私は最後に苦労しました。私はテキストのサイズを計算し、それを私がデバイスにフィットすると見た最大ピクセルサイズと比較します。醜いが、それは動作します。
+ (CGFloat)calculateTextWidth:(NSString *)text
{
CGSize fullSize = [UIScreen mainScreen].applicationFrame.size;
UIGraphicsBeginImageContext(fullSize);
CGContextRef context = UIGraphicsGetCurrentContext();
// calculate the text size
CGContextSelectFont(context, "Helvetica", 17, kCGEncodingMacRoman);
CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1.0, -1.0));
CGContextSetTextDrawingMode(context, kCGTextInvisible);
// measure the text
CGPoint initialTextPosition = CGContextGetTextPosition(context);
CGContextShowTextAtPoint(context, 0, 0, [text cStringUsingEncoding:NSASCIIStringEncoding], text.length);
CGPoint finalTextPosition = CGContextGetTextPosition(context);
return finalTextPosition.x - initialTextPosition.x;
}
あなたが0.0にUIBarButtonItem幅を設定した場合、それはそうそこに、自動的にその幅を調整幅を計算する必要はありません。特にサイズが異なるローカライズされた文字列を使用する場合に特に便利です。 –