【发布时间】:2011-09-30 22:06:46
【问题描述】:
我有一个奇怪的问题。我有 3 个级别的视图:
- MainView
- containerview
- subview
-some buttons
-some buttons
我制作了一个动画,通过单击主视图中的按钮使我的子视图出现和消失。以下是让子视图消失并重新出现的部分代码:
[UIView animateWithDuration:0.4 //begin animation
delay:0.1
options:UIViewAnimationCurveEaseIn
animations:^{
[UIView transitionWithView:containerview
duration:0.4
options:UIViewAnimationOptionTransitionCurlUp
animations:^{ [subView removeFromSuperview] ;}
completion:nil];
containerview.alpha = 0;
}
completion:^(BOOL finished){
saveButton.hidden = true;
saveDAVButton.hidden = true;
saveDBButton.hidden = true;
loadButton.hidden = false;
openDAVButton.hidden = false;
openDBButton.hidden = false;
[UIView transitionWithView:containerview
duration:0.4
options:UIViewAnimationOptionTransitionCurlDown
animations:^{ [containerview addSubview:subView] ;}
completion:nil];
containerview.alpha = 1;
}
];
这个动画效果很好。唯一的问题是,即使子视图可见(子视图按钮也是如此),我也可以单击子视图后面的按钮! (主视图中的按钮)。这使得子视图中的按钮难以使用,因为它们与主视图中的按钮重叠。
知道如何使子视图后面的元素不可点击吗?
我已经尝试禁用和隐藏主视图中的按钮,但即便如此,我也无法使用子视图中的重叠按钮!
感谢您的帮助。
更新 我找到了问题所在。实际上,我必须再次使我的帖子更清晰。这是视图的层次结构,有位置和大小:
- MainWindow (0,0,768,1024)
- MainView (0,0,768,80) (this is actually a top tool bar)
- containerview (500,40,120,80)
- subview (500,40,120,80) (will act as a post it : curl up and down...)
所以,问题是我的子视图的底部超出了 MainView。当单击按钮放置在子视图的底部时,什么也没有发生。事实上,我正在点击 MainWindow!一半的子视图无法点击...
在更改我的所有代码之前,即使他是 MainView 的一部分,是否有办法使子视图的底部可访问?还是我必须在 MainWindow 中移动它?
再次感谢...
【问题讨论】:
标签: iphone ipad uiview ios4 uiviewanimation