1

iOS 10.3 在UISegmentedControl'setTitleTextAttributes方法上崩溃。

问题:

  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 版本上崩溃

4

2 回答 2

3

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

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

segmentedControl.setTitleTextAttributes([NSFontAttributeName : UIFont.systemFont(ofSize: 14.0)], for: .normal)
于 2017-04-06T07:49:53.797 回答
0

利用

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

代替

segmentedControl.setTitleTextAttributes([UIFont.systemFont(ofSize: 14.0) : NSFontAttributeName], for: .normal)
于 2017-04-06T07:49:40.130 回答