2

UIViewのサブクラスであり、UIScrollViewを含むコンポーネントに取り組んでいます。スクロールすると、ビルドするSDKによって動作が異なることに気付きました。iOS 4では、layoutSubviewsメッセージはスクロールビューのスーパービュー(私のコンポーネント)で送信されますが、iOS 5では、メッセージはもう送信されていないようです...

iOS 5のリリースノートと変更ログを調べたところ、そのような変更についての言及は見つかりませんでした。私は何かが恋しかったですか?

4

2 に答える 2

5

iOS5では、layoutSubviewsはscrollViewのスーパービューでは呼び出されません。しかし、それはiOS4にありました。

iOS5でこの動作が必要な場合は、UIScrollViewのサブクラスでこれを実行します。

- (void)layoutSubviews {
    [super layoutSubviews];

    // causes layoutSubviews to get called on superview
    [self.superview setNeedsLayout]; 

これはおそらくより効率的になるように変更されました。UIScrollViewがスクロールしているからといって、スーパービューがそれ自体をレイアウトする必要があるという意味ではありません。

于 2011-12-03T20:36:41.727 に答える
0

ボタンウィッチのサイズを変更すると大きな問題が発生しました。テーブルビューのサブビューでした。ペン先は小さい方のボタンをロードし、ロードした後、サイズを変更します。しかし、テーブルビューのコンテンツはそうではありませんでした。(iOS 4. *では完璧でしたが、iOS 5では)。そのため、サイズ変更をViewDidLoadに配置する必要があることがわかりました。私はそれがsome1に役立つことを願っています=)

于 2012-04-27T16:02:52.817 に答える