UIButton の textLabel に linebreakmode を設定しようとしています。
self.scheduleButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
NSLineBreakByWordWrapping
iOS 6.0 より前では使用できません。
self.scheduleButton.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
iOS6 より前では動作しますが、XCode はエラーをスローしており、認識されませんUILineBreakModeWordWrap
。
iOS 6 より前に UILineBreakModeWordWrap コードが完全に無視されるようにするにはどうすればよいですか。
OS のバージョンを確認するマクロを作成しました。メソッドの場合は、respondsToSelector を使用していましたが、これは列挙型です。
SYSTEM_VERSION_LESS_THAN(@"6.0")
ここではこれを使用していますが、if-else シナリオで使用していますが、XCode から UILineBreakModeWordWrap が認識できないことが通知されるため、まだ機能しません。
前処理レベルでOSのバージョンを知る方法はありますか?
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
私が作成したこのマクロは、実行時にチェックが行われることを意味する OS タイプを決定する目的の C コードを追加するだけです。
しかし、このため XCode は無視しませんUILineBreakModeWordWrap
。