某些背景:我想在UIToolBar
上有3個按鈕。我設法讓中間的一個居中,把所有的東西都放到UIToolBar
本身中,變成UIView
。當標題變得太寬時調整UIBarButtonItem的大小
當中間按鈕的標題變得太大時,所有東西看起來應該與它不同。 然後顯示在左側或右側按鈕下方。
我無法獲得UIToolBar
或UIBarButtonItems
的寬度,以便在它們太大時能夠調整它們的大小。 「UIBarButtonItem」具有非常好的width
屬性,如果它太大,我可以調整控件的大小。 但我不知道它太大了!
編輯:我在最後做了艱難的工作。我計算文本的大小,並將其與我在設備上看到的最大像素大小進行比較。醜,但它的作品。
+ (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;
}
如果你設置的UIBarButtonItem寬度爲0.0,它會自動調整其寬度,所以不需要計算寬度。在使用本地化的字符串時,它們的大小始終不一樣,特別有用 – 2011-12-14 10:17:32