UIViewサブクラスがあります。PopupViewと呼びましょう。このPopupViewの中には、カスタムuiviewとuibutton (2)が入ったNavigationBarがあります。また、PopupViewのすぐ内側にUIButton (1)があります。
PopupView
- UIButton (1)
- UINavigationBar
- UINavigationItem
- UIBarButtonItem
- UIView
- UIButton (2)
uinavigationbarの狂気のこのuibuttonの理由は、uibuttonのbackgroundimagesにcapinsetsを使用できるが、uibarbuttonitemには使用できないためです。
私の問題:
uiviewアニメーションを使用してPopupViewのサイズを変更しましたが、アニメーションが完了した後、このuiviewのボタンをクリックできなくなりました。
[UIView animateWithDuration:0.4f delay:0.0f options:UIViewAnimationCurveEaseOut animations:^{
CGRect popupFrame = self.frame;
popupFrame.size.height += 140.0f;
popupFrame.origin.y = floorf(popupFrame.origin.y - (140.0f / 2));
self.frame = popupFrame;
} completion:^(BOOL finished) {
}];
これは、uiviewアニメーションを使用せず、新しいフレームを直接設定した場合にも発生します。viewDidLoad
また、クリックでサイズを変更するか、 viewControllerで直接サイズを変更するかは関係ありません。
なぜこれが起こるのか考えはありますか?