我目前正在使用Swift进行开发,并且遇到动态类型问题。我已经设置了这段代码
import Foundation
import UIKit
class ExerciseController :UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var exerciseTableView :UITableView
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(animated: Bool) {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reload", name: UIContentSizeCategoryDidChangeNotification, object: nil)
}
override func viewWillDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIContentSizeCategoryDidChangeNotification, object: nil)
}
func reload() {
println("reload")
}
func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
return 1
}
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cellIdentifier = "ExerciseCell"
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell
if !cell {
cell = UITableViewCell(style: .Default, reuseIdentifier: cellIdentifier)
}
cell!.textLabel.text = "Hello"
cell!.textLabel.font = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline)
return cell
}
}
我运行我的应用程序,然后转到“设置”应用程序以修改文本大小,但通知选择器未被调用且不知道原因。在此先感谢您解决此问题,所有帮助表示赞赏
*以前通知观察员在viewDidiLoad和deinit上设置但是它既不起作用
更新#1
我尝试使用键盘通知做同样的事情,但确实有效。这意味着应用程序无法识别文本大小何时更改
答案 0 :(得分:6)
编辑1 Apple已承认我的错误报告,并将其与其他错误报告合并。
我做了一些测试,发现这个问题/错误只在iOS 8模拟器和UIContentSizeCategoryDidChangeNotification
中流行。其他通知按预期工作,UIContentSizeCategoryDidChangeNotification
在iOS 7模拟器中的行为与预期相同。我已经提交了雷达的错误报告。希望这可以澄清在不久的将来有这个问题的人。
编辑2
现在似乎已经修复了。此外,来自Big Nerd Ranch的this library确实简化了设置动态类型的整个过程。