gpt4 book ai didi

iphone - 大小与字体 :minFontSize:actualFontSize:forWidth:lineBreakMode: not returning proper CGSize

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:02 25 4
gpt4 key购买 nike

除非我读错了文档,否则这个方法 sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 似乎没有返回正确的 CGSize。这是示例代码

NSString *someText = @"$";
CGFloat actualFontSize;
CGSize textSize = [someText sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:100.0] minFontSize:1.0 actualFontSize:&actualFontSize forWidth:10.0 lineBreakMode:UILineBreakModeClip];

返回的 textSize 的高度是字体大小为 100.0 时的高度,而不是新缩小字体大小时的高度。

如果您随后采用 actualFontSize 并执行 sizeWithFont:forWidth:lineBreakMode::

CGSize newTextSize = [someText sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:actualFontSize] forWidth:10.0 lineBreakMode:UILineBreakModeClip];

现在 newTextSize 将包含正确的高度。

还有其他人遇到过这个吗?

最佳答案

问题是你的宽度。因为您已将最小字体设置为 1.0 像素并且仅将宽度设置为 10.0,所以您的 textSize 将自动调整为适合您自己设置的 10.0 宽度的较低 textSize。

CGSize textSize = [someText 
sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:100.0]
minFontSize:1.0 //the troublemaker
actualFontSize:&actualFontSize
forWidth:10.0 //the troublemaker
lineBreakMode:UILineBreakModeClip];

您发布的另一个将返回正确的大小,因为您没有设置最小 textFont 并且您将宽度设置得恰到好处。

CGSize newTextSize = [someText 
sizeWithFont:[UIFont fontWithName:@"Futura-CondensedMedium"
size:actualFontSize]
forWidth:currencyRect.size.width //probably not 10 pixels wide
lineBreakMode:UILineBreakModeClip];

关于iphone - 大小与字体 :minFontSize:actualFontSize:forWidth:lineBreakMode: not returning proper CGSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864377/

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