В настоящее время я разрабатываю 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
Я попробовал то же самое с уведомлением клавиатуры, и это сработало. Это будет означать, что приложение не распознает изменение размера текста, когда это делается.
@objc(reload) func reload() {
- person David Berry   schedule 07.06.2014