0

ios5 と ios6 の非互換性に関する問題があります

iOS5でプロジェクトに取り組んでいる間

label.textAlignment = UITextAlignmentCenter;

その後ios6にアップデート

label.textAlignment = NSLineBreakByTruncatingTail;

iOS5がインストールされたデバイスでコードを実行すると、エラーが発生します。

アプリを appstore にアップロードしようとしていますが、アプリで ios5 もサポートする必要があります。ios5 と ios6 の両方をどのように処理するのか!

前もって感謝します!

4

1 に答える 1

1

NSTextAlignmentの許容値は次のとおりです。

  • NSTextAlignmentLeft
  • NSTextAlignmentCenter
  • NSTextAlignmentRight
  • NSTextAlignmentJustified
  • NSTextAlignmentNatural

これらのうち、最初の 3 つのいずれも iOS 5 および 6 で同等に機能します。

NSLineBreakByTruncatingTailNSTextAlignmentNaturalは、C 列挙型が整列する方法のために、実行時のように見えますが、実際には有効なタイプのテキスト配置ではありません。

NSTextAlignmentLeftそのため、全面的に切り替えるか、機能チェックを行う必要があります。ありがたいことに、テキスト配置タイプの変更は、属性付きの文字列を (および他の場所に) プッシュする新しい機能をサポートしてUILabelいるため、何かをぶら下げることができます。

例えば

if([label respondsToSelector:@selector(attributedText)])
    label.textAlignment = NSTextAlignmentNatural;
else
    label.textAlignment = NSTextAlignmentLeft;

NSTextAlignmentLeftがデフォルト値であるため、else は技術的に冗長ですが。

于 2012-11-08T00:58:25.427 に答える