一些背景:我想要一个3个按钮UIToolBar.我设法让中间的一个居中,把所有东西都放进UIToolBar去UIView.
除了中间按钮的标题太大之外,Everythings看起来就像它应该是它.然后它会显示在左或右按钮下.
当它们太大时,我无法获得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;
}
Run Code Online (Sandbox Code Playgroud)
在左右按钮和中央按钮之间放置一个灵活的空格键按钮项; 这将允许侧面按钮只占用他们需要的宽度,并保持中心按钮居中,同时允许它生长到它周围的空间.
这是Interface Builder的一些屏幕截图,显示了我今天早上工作的一些显示效果:双头箭头是IB显示灵活空间项目的方式......

...和中心按钮上的标题更长......

这是我的iPhone 3GS上显示的带有短和长中心按钮的工具栏:


| 归档时间: |
|
| 查看次数: |
4628 次 |
| 最近记录: |