1

特定の機能のクラスが存在するかどうかを検出し、可用性に応じてユーザーの機能を低下させることをお勧めします。iOS 5.1ユーザーをサポートするために、ストーリーボードと標準のテーブルビューでUICollectionViewを作成しました。次に、ユーザーがこの機能を持っているかどうかを確認し、適切なシーンに移動します。ただし、コードをコンパイルしようとすると、「dyld:Symbol not found:_UICollectionElementKindSectionHeader」が表示されます。これは、iOS5.1デプロイメントターゲットを使用したスト​​ーリーボードでios6.0機能を許可しないAppleの非常にアンチパターンのようです。

if ([UICollectionView class]) {
    [self performSegueWithIdentifier:@"UserShow" sender:self];
} else {
    [self performSegueWithIdentifier:@"UserShowTable" sender:self];
}

上記は私にはかなり合理的なアプローチのようです...

4

3 に答える 3

3

リンクの回答だけを入れるのは適切ではないことはわかっていますが、ファイル全体を含めることはできません。

ご覧ください

コントローラーは、iOS 6 の UICollectionController と同じ機能を提供するように設計されていますが、iOS 4/5 もサポートしています。

開発者が伝えたいこと

PSTCollectionView
オープン ソース、iOS4.3 以降の UICollectionView の 100% API 互換の代替品

UICollectionView を使用したいが、それでも iOS4/5 をサポートする必要がありますか? その後、このプロジェクトを気に入るはずです。私はもともと 、テキスト選択と注釈をサポートする私の iOS PDF フレームワークであるPSPDFKit用に作成しましたが、このプロジェクトは、他の人が自分用に保持するのに役立つように思えました :) さらに、新しいグリッドビューの流入を止めたいと思っています。レイアウト マネージャーを作成し、優れたコードベースを構築するだけでよいのです。

目標は、iOS 4/5 で PSTCollectionView をフォールバックとして使用し、iOS6 で UICollectionView に切り替えることです。実行時に特定の実行時のトリックを使用して、古いバージョンの iOS の実行時に UICollectionView を作成することさえあります。理想的には、ファイルをリンクするだけで、すべてが古いシステムで機能します。実際には、実行時に置き換えることができないため、特に UICollectionView クラスのサブクラスを使用している場合は、それほど簡単ではありません。

于 2012-11-01T12:12:34.797 に答える
2

できません。コレクション ビュー コントローラーをストーリーボードにドロップするとすぐに、それを自動的に参照しようとするため、コンパイル エラーが発生します。

于 2012-11-01T12:04:53.557 に答える
2

ストーリーボードを介した 6.0 より前の展開の互換性ソリューションはありませんが、PSTCollectionViewは iOS 5.0 以降をサポートしており、積極的に維持されています。6.0 以降で使用すると実行時に機能しUICollectionView*、ストーリーボードと互換性があるはずです。

于 2012-11-02T06:00:50.013 に答える