2012-02-23 8 views
0

私は、サブレイヤが変わるたびに(サブレ​​イヤの境界が変わったとき、またはサブレイヤの配列自体が変わったとき)、CALayerのサイズを変更する方法を探しています。私は前景色で働いていたときUIViewのsizeToFitメソッドと同等のCALayerは何ですか?

、私は、ビューのサブビューを変更するたびにsizeToFitによって自動的に呼び出された私のカスタムUIViewのサブクラスにsizeThatFitsを実装していることを管理していました。

CALayerはsizeThatFits-equivalent-method preferredSizeを持っているので、sizeToFit相当のものが見つからないことに驚きました。

+0

これを見てください: http://stackoverflow.com/questions/8219588/catextlayer-wrapped-sizetofit –

+0

私は彼が層のサイズがどうあるべきかを知りたいので、それは、sizeThatFits、ないsizeToFitについてだと思います。私はそのサイズ(preferredSizeを介して)を計算することができますが、私はサブビューが変更されたときに呼び出されるメソッドが必要です(preferredSizeを呼び出し、それに応じてレイヤのフレームを設定します)。 – bg890

+0

代わりにUIViewを代わりに使用するのはなぜですか? –

答えて

0

は、私はあなたが- (void)layoutSublayers ... *サブクラスは* にこれをオーバーライドし *各副層のフレームを設定する必要があり、独自のレイアウトアルゴリズムを、提供することができます(オーバーライド)を実装する必要があると思う

- (void)layoutSublayers 
{ 
// self.frame = aNewSubLayer.bounds 
// basically do algorithm for setting frame and bounds for this(self) layer and subLayers here 
} 
関連する問題