【发布时间】:2012-10-10 10:43:45
【问题描述】:
我确实有一个 UIView 子类,我们称之为 PopupView。在此 PopupView 中,我确实有一个带有自定义 uiview 和 uibutton (2) 的 NavigationBar。 PopupView 内部还有一个 UIButton (1)。
PopupView
- UIButton (1)
- UINavigationBar
- UINavigationItem
- UIBarButtonItem
- UIView
- UIButton (2)
uibutton 中这个 uibutton 疯狂的原因是因为我可以将 capinsets 用于 uibutton 中的背景图像,但不能用于 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 动画并直接设置新框架,也会发生这种情况。同样,我是否通过单击或直接在其 viewController 中的viewDidLoad 上调整它的大小也没关系。
任何想法为什么会发生这种情况?
【问题讨论】:
-
运行您的应用程序并使其进入按钮不响应的状态。然后在调试器中暂停并运行以下命令:
po [[UIApp keyWindow] recursiveDescription]。复制输出并将其粘贴到您的帖子中。 -
嘿,抢劫,请参阅gist.github.com/d9f7bb875be6590b315a。我正在谈论的 PopupView 在 GIST 中称为
MoviePopupView,靠近底部。
标签: iphone objective-c ios uiview uiviewanimation