【问题标题】:Calculating UIFont size based on pre calculated ascender根据预先计算的上升器计算 UIFont 大小
【发布时间】:2011-09-18 06:00:03
【问题描述】:

我正在为我的 iOS 应用程序使用自定义字体。我的视图需要根据视图的大小为字体选择不同的磅值。如果我有一个预定的

CGFloat ascender;

我基本上想确定这一点

CGFloat calculatedFontSize = [self fontSizeForAscender:ascender];
[UIFont fontWithName:@"DINEngschriftStd" size:calculatedFontSize];

最好的方法是什么?

【问题讨论】:

    标签: iphone ios fonts uikit uifont


    【解决方案1】:

    试试这个。 [aString sizeWithFont:font minFontSize:minSize actualFontSize:&theSizeToUse forWidth:ViewWidth lineBreakMode:UILineBreakModeWordWrap];

    theSizeToUse 只是一个未初始化的 CGFloat(即CGFloat theSizeToUse;)。您应该将它的地址传递给该方法,并在返回时包含您应该使用的字体大小。

    【讨论】:

      【解决方案2】:

      没有特别明显的方法可以做到这一点。您可以反复更改字体大小,直到找到具有正确升序的字体,但这有点混乱(幸运的是,没有那么多浮点数,因此您可以在 31 次区间二等分试验中合理准确地做到这一点)。

      另一方面,如果您假设升序随字体大小线性缩放,您可以这样做:

      UIFont * f = [UIFont fontWithName:... size:1];
      f = [f fontWithSize:ascender/f.ascender];
      

      【讨论】:

        猜你喜欢
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-11
        • 2011-06-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多