viewWillLayoutSubviewsが意図せず再帰呼び出し | HMDT Blog

viewWillLayoutSubviewsが意図せず再帰呼び出し


UIViewControllerにviewWillLayoutSubviewsってメソッドがある。ビューコントローラが管理しているビューが再レイアウトされるときに呼び出されるもので、iOS 5から追加された。

このメソッドって、UIViewControllerが直接管理しているviewのframeが変更されたときだけ呼び出されると思っていたら、そのsubviewで再レイアウトが必要なときにも呼び出されちゃう事があるのね。しかも、すぐその場で。

デバッグ中にぶち当たった問題は、viewWillLayoutSubviewsの中でUIButtonの背景画像を変更したら、それがボタンの再レイアウトを誘発したらしく、その場で再びviewWillLayoutSubviewsが呼び出された。再帰的に。マジですかー。そんなもん、想像してなかったよ。

まぁ、なんべん呼び出されても大丈夫なようにはしてるんだけど、気持ち悪いよなー。

  1. コメントはまだありません。

  1. トラックバックはまだありません。