2009-07-25 13 views
7

「CAプログラミングガイド」では、制約レイアウトマネージャについて説明しています。ただし、iPhone SDKのCALayerには、constraintsプロパティまたはaddConstraintメソッドはありません。iPhone OSに制約レイアウトマネージャがありますか?

iPhone OSはカスタムレイアウトマネージャを提供していないと言う。しかし、標準のものはどうですか?

答えて

10

残念なことに、ドキュメンテーションにもかかわらず、レイヤーのスプリングとストラットのレイアウトさえも、CALayerのiPhone実装からは抜けています。これは、iPhoneのCALayerのmissing autoresizingMaskプロパティで確認できます。

Core Plotについては、CALayerの-layoutSublayersメソッドを使用して独自のカスタムレイヤーレイアウトを実装しました。 CPLayerクラスは、このアプローチの例を提供します。

+0

非常に面白いもの、ブラッド! – Thanks

1

スーパービュー/スーパーレイヤーに対するビュー/レイヤーの位置付けに使用できる唯一の方法は、スプリング&ストラットモデルです。カスタムレイアウトマネージャはiPhoneでは利用できません。

+0

つまり、自動サイズ変更マスクを使用していますか? – Thanks

+0

はい - Core Animationの場合、CAAutoresizingMaskで定義された定数に従ってマスクを使用することを意味します。 –

+4

この点に関しては、実際にはドキュメントが間違っています。 iPhoneのCALayerではautoresizingMaskをプロパティとして使用できないため、レイヤーのスプリングとストラットのレイアウトを行う方法はありません。 –

1

スプリングとストラットのレイアウトのサポートは、UIViewのautoresizingMaskプロパティから利用できます。

関連する問題