2017-07-14 5 views
2

この物件のみを検索iOS 10+ OS物件を代用する代替ソリューションは何ですか?adjustsFontForContentSizeCategory iOSの代替手段は何ですか?

Apple documentation for Objective C

@property(nonatomic) BOOL adjustsFontForContentSizeCategory; 

Apple documentation for Swift

var adjustsFontForContentSizeCategory: Bool { get set } 

我々は低いバージョンのアプリがクラッシュあるで開いたときに、このプロパティは、下位バージョンでは動作しません。下のバージョンでは

class ViewController: UIViewController { 

    @IBOutlet weak var dynamicTextLabel: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     dynamicTextLabel.font = .preferredFont(forTextStyle: .body) 

     NotificationCenter.default.addObserver(forName: .UIContentSizeCategoryDidChange, object: nil, queue: .main) { [weak self] notification in 
      self?.dynamicTextLabel.font = .preferredFont(forTextStyle: .body) 
     } 
    } 

    deinit { 
     NotificationCenter.default.removeObserver(self, name: .UIContentSizeCategoryDidChange, object: nil) 
    } 
} 

答えて

2

、ユーザーが好みのフォントサイズを変更したときに、フォントのアップデートを持つために、我々のような何かを行う必要があるだろうUIContentSizeCategoryDidChangeNotification

[[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(didChangePreferredContentSize:) 
      name:UIContentSizeCategoryDidChangeNotification 
     object:nil]; 

スウィフトバージョン

- そこにはプロパティを定義しているし、あなたがプログラム的にそれを処理する必要があります、あなたはフォントの変更のためのシステム通知に耳を傾ける必要がありません

そして、セレクタメソッド - didChangePreferredContentSizeで要件を処理できます。

ベストプラクティスガイドライン - ビューコントローラーを離れると、オブザーバーを削除することを忘れないでください。

2

:iOSのバージョン10より前で

スウィフト3では
+0

plz形式の回答 –

+0

@Prashantフォーマットに感謝します。私は逃しました。 –

+0

@kapsym喜び。 – Prashant

関連する問題