作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一些背景:我想在 UIToolBar
上有 3 个按钮。我设法将中间的一个居中,并将所有内容放入 UIToolBar
本身放入 UIView
中。
除了中间按钮的标题变得太大之外,一切看起来都像它应该的那样。然后它会显示在左按钮或右按钮下方。
当 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;
}
最佳答案
在左右按钮和中心按钮之间放置一个灵活的空格键按钮项目;这将允许侧面按钮仅占据所需的宽度,并保持中心按钮居中,同时允许其生长到周围的空间中。
下面是我今天早上正在做的一些 Interface Builder 的屏幕截图,显示了效果:双头箭头是 IB 显示灵活空间项目的方式...
...与中心按钮上的较长标题相同...
这是在我的 iPhone 3GS 上看到的带有短和长中心按钮的工具栏:
关于iphone - 当标题太宽时调整 UIBarButtonItem 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215458/
我是一名优秀的程序员,十分优秀!