【问题标题】:iOS 10.3 UISegmentedControl setTitleTextAttributes CrashiOS 10.3 UISegmentedControl setTitleTextAttributes 崩溃
【发布时间】:2017-04-06 07:39:55
【问题描述】:

iOS 10.3 在UISegmentedControlsetTitleTextAttributes 方法上崩溃。

问题:

  1. 崩溃的原因是什么?
  2. 解决办法是什么?

注意:已经向苹果报告了这个问题,但还没有收到他们的消息。 https://openradar.appspot.com/31448227

示例代码:

class ViewController: UIViewController {

    @IBOutlet private weak var segmentedControl: UISegmentedControl!

    override func viewDidLoad() {
        super.viewDidLoad()         
        //Crash!        
        segmentedControl.setTitleTextAttributes([UIFont.systemFont(ofSize: 14.0) : NSFontAttributeName], for: .normal)
    }
}

编辑

正如@vedian 指出的那样,它应该是[key : value],而不是相反,但是上面的代码不会在低于 10.3 的 iOS 版本上崩溃

【问题讨论】:

  • 任何代码?那会更容易。任何属性或您只尝试过字体?
  • @Lu_ 好吧,我也迁移到了 swift 3.1,但它仍然崩溃,你可以自己测试。
  • @BurhanuddinSunelwala 它对我有用。检查您的 IBOutlet 连接。
  • @RajeshkumarR 10.3?
  • 10.2 和属性应该是[key:value] 格式[NSFontAttributeName: UIFont.systemFont(ofSize: 10.0)]。尝试更改它。

标签: ios swift ios10.3


【解决方案1】:

是您造成了问题,而不是 Apple。

按顺序创建字典,首先是key,然后是value

segmentedControl.setTitleTextAttributes([NSFontAttributeName : UIFont.systemFont(ofSize: 14.0)], for: .normal)

【讨论】:

  • 好的,试试这个。我没注意到。谢谢。但为什么它适用于 swift 2.3?
【解决方案2】:

使用

    segmentedControl.setTitleTextAttributes([NSFontAttributeName: UIFont.systemFont(ofSize: 14.0)], for: .normal)

而不是

segmentedControl.setTitleTextAttributes([UIFont.systemFont(ofSize: 14.0) : NSFontAttributeName], for: .normal)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多