gpt4 book ai didi

iphone - 当标题太宽时调整 UIBarButtonItem 的大小

转载 作者:行者123 更新时间:2023-12-03 18:38:44 27 4
gpt4 key购买 nike

一些背景:我想在 UIToolBar 上有 3 个按钮。我设法将中间的一个居中,并将所有内容放入 UIToolBar 本身放入 UIView 中。

除了中间按钮的标题变得太大之外,一切看起来都像它应该的那样。然后它会显示在左按钮或右按钮下方。

UIToolBarUIBarButtonItems 太大时,我无法获取它们的宽度来调整它们的大小。“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 显示灵活空间项目的方式...

Interface Builder screenshot showing toolbar with wide flexible spaces

...与中心按钮上的较长标题相同...

Interface Builder screenshot showing toolbar with narrow flexible spaces

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

iPhone screenshot showing toolbar with wide flexible spaces

iPhone screenshot showing toolbar with narrow flexible spaces

关于iphone - 当标题太宽时调整 UIBarButtonItem 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215458/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com