【问题标题】:Auto resize text within a constrained button on storyboard在情节提要上的受约束按钮内自动调整文本大小
【发布时间】:2015-03-16 02:52:40
【问题描述】:

我有一个通用应用程序,我使用故事板来约束一个按钮,以便从 iPhone 4 到 iPhone 6plus,大小将与设备的屏幕成比例。按钮的标题是数字“2”(屏幕上显示的都是可以按下的数字“2”)。出于某种原因,我无法弄清楚如何使用按钮大小自动调整字体大小,以使数字看起来与预期的屏幕成比例。 想法?

【问题讨论】:

    标签: ios button text xcode6 autoresize


    【解决方案1】:
    1. 仅使用界面生成器。您可以添加与按钮大小相同的 UILabel。删除您的按钮的标题。为 UILabel 设置文本。然后将 UILabel 的 AutoShrink 属性更改为“Minimum Font Scale”。但是您将无法更改不同状态的文本颜色。

    2. 使用代码来适应宽度。试试这个:

      self.yourButton.titleLabel.adjustsFontSizeToFitWidth = YES;
      self.yourButton.titleLabel.minimumScaleFactor = 0.5;
      
    3. 如果你想适应标题的高度。也许你必须自己计算高度。使用 [font lineHeight] 确保字体适合您的按钮。

    【讨论】:

      【解决方案2】:

      为您应用中的每个按钮调用此函数(例如来自 viewDidAppear):

      func setAppropriateFontSize( butt:UIButton){
          let maxFontSize = butt.frame.height
          butt.titleLabel!.font = UIFont(name: "Helvetica", maxFontSize)
          butt.titleLabel!.adjustsFontSizeToFitWidth = true
          butt.titleLabel!.minimumScaleFactor = 0.01
      }
      

      在上面,maxFontSize 是文本仍然垂直适合按钮的最大字体大小。这个字体可能太大了,因此我们允许它缩小(adjustsFontSizeToFitWidth = true 表示我们允许字体缩小,因为它永远不会增加以适应宽度)。

      【讨论】:

        猜你喜欢
        • 2014-12-01
        • 1970-01-01
        • 2014-10-12
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多