私は現在 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
キーボード通知で同じことを試してみましたが、うまくいきました。これは、アプリケーションが完了時にテキスト サイズが変更されたことを認識していないことを意味します。