【问题标题】:System font disappear on UIButton attributed titleUIButton 属性标题上的系统字体消失
【发布时间】:2018-07-09 10:43:03
【问题描述】:

我有一个 UIButton,我将其标题更改为 attributed

既然标题已归属,我需要保留字体 - “系统字体”。

很遗憾,我找不到系统字体,因为当我将 UIButton 标题设置为属性时,我无法再获得此菜单:

相反,我只得到这个菜单:

在这里,在较大的菜单中,我找不到系统字体。

菜单中的系统字体在哪里,或者在使用 UIButton 属性标题时如何通过界面生成器添加系统字体?

请不要建议“在 UIButton 下添加带有 _______ 的标签”或“带有文本的 UIImageView”。

【问题讨论】:

  • Family 仅在该图片中是系统字体。滚动它,选择你的字体,你会得到像常规字体一样的字体。

标签: ios swift uibutton


【解决方案1】:

当前iOS系统字体为“旧金山”

您可以通过以下方式使用它:

UIFont.systemFont(ofSize: CGFloat, weight: UIFontWeight)

您也可以通过此页面上的链接下载字体:https://developer.apple.com/ios/human-interface-guidelines/visual-design/typography/

【讨论】:

  • SF 单声道?没有“旧金山”
  • 不确定您的问题是什么...您在寻找“SF Mono”吗?还是您在寻找默认的 iOS 系统字体?
  • 您说“当前的 iOS 系统字体是“旧金山”,但列表中没有“旧金山”字体。只有“SF mono”——你的意思是“SF mono”是系统字体吗?
  • "San Francisco" 是字体的“名称”,但与许多字体一样,名称不一定是字体列表中显示的内容,也不是您用来识别字体的名称,如果您已将其添加到您的项目中。如果您阅读我链接到的页面,您会看到 iOS 使用 SF Pro Text for text 19 points or smaller, SF Pro Display for text 20 points or larger。 OSX 将“SF Mono”用于 Mono-Spaced 字体的各种事物(例如终端)。那么...您需要 Mono-Spaced 版本吗?
【解决方案2】:

没有情节提要,有一种更简单的方法。

查看此示例代码:

class VC: UIViewController{

    @IBOutlet weak var button: UIButton! //button outlet

    override func viewDidLoad() {
        super.viewDidLoad()
        // Initialization code
        ///here we are defining the attributes for the button title...

        let textAttribute: [NSAttributedStringKey : Any] = [.foregroundColor: UIColor.blue, .font: UIFont.systemFont(ofSize: 14)]

        self.button.setAttributedTitle(NSAttributedString(string: "Button", attributes: textAttribute), for: .selected)
    }
}

【讨论】:

    【解决方案3】:

    从情节提要中,将属性文本更改回系统字体可能会令人沮丧。

    解决方案 1:重做

    好吧,如果属性文本足够简单,我可以建议:

    1. 将其切换为纯文本:
    2. 将字体设置回系统
    3. 将其切换回属性文本
    4. 重新应用所需的格式

    解决方案 2:编辑 XML

    如果属性字符串很复杂,你可能要小心:

    1. 切换到版本编辑器(或使用 BBEdit 或 Sublime Text 等外部编辑器打开故事板)以编辑故事板的 XML 源
    2. 找到有罪的字体,比如:

      <font key="NSFont" size="17" name="ComicSansMS"/>
      
    3. 替换为元字体,例如:

      <font key="NSFont" metaFont="system" size="17"/>
      
    4. 返回标准编辑器


    请注意,我很少使用故事板中的属性字符串,因为它不支持翻译。所以一般来说,您将使用带有一些 lorem ipsum 的情节提要,并从代码中设置适当的 NSAttributedString。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多