【问题标题】:How to make the font scale如何制作字体比例
【发布时间】:2011-08-11 23:42:32
【问题描述】:

我正在为 iPhone 和 iPad 制作一个通用应用程序。我知道有一个选项可以定义文本在太大时应该向下缩放到选定的点大小但是当文本显示在 iPad 上时我需要文本向上缩放。那可能吗?我有一个大小为 18 磅的标签。考虑到文字的长度,这几乎占据了 iPhone 上的整个宽度。但在 iPad 上,由于屏幕尺寸增加,情况并非如此......

感谢您的宝贵时间。

【问题讨论】:

  • 如果将字体缩小到 iPad 和 iPhone 上,那么让字体大小变得更大怎么样?我没有尝试过,只是作为一个想法提供。

标签: iphone ipad universal uifont


【解决方案1】:

我在通用应用程序上遇到了同样的问题。

我确实设置了 autosizing 参数以直接在 Interface Builder 中缩放所有组件,但它没有缩放字体大小以占用新给定的屏幕空间。

我最终用下面的代码更新了每个视图的viewDidLoad,基本上是遍历视图的组件并将所有标签的pointSize加倍(对于按钮也可以):

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    for (UIView *component in self.view.subviews) {
        if ([component isKindOfClass:[UILabel class]]) {
            UILabel *labelToUpdate = (UILabel *) component;
            [labeltoUpdate setFont:[labelToUpdate.font fontWithSize:labelToUpdate.font.pointSize*2]];
        }
    }

该应用现在可以很好地从 iPhone 扩展到 iPad。

【讨论】:

    【解决方案2】:

    你可以在方法上循环:

    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
    

    直到你得到一个占据两行的匹配,然后使用以前的字体大小。似乎更快/更容易使用惯用语来定义 iPad 的特定尺寸。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多