tha*_*oru 11 objective-c uibutton uiviewanimation
我在这个论坛上看到很多问题给出了这个主题的答案"当UIView内部的UIButton,当动画不起作用时",但是在尝试了像这样的答案之后
a) UIViewAnimationOptionAllowUserInteraction to the options
b) subView.setUserInteractionEnabled = YES
c) [button addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
他们都没有为我工作:-(
这是场景.App处于横向模式,名为menuView的UIView位于x = 480,y = 0.它的高度= 200,宽度= 150.因此,当我点击右上角的按钮时,将执行以下代码
- (IBAction)showMenu {
[menuView setUserInteractionEnabled:YES];
[optionsButton setUserInteractionEnabled:YES];
[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationCurveEaseOut | UIViewAnimationOptionAllowUserInteraction
animations:^{
self.view.frame = CGRectOffset(self.view.frame, 0, 200);
}
completion:NULL];
}
Run Code Online (Sandbox Code Playgroud)
输出?:视图正在显示,但menuView中的optionsButton无法点击.我联系了一个事件,做了一个NSLog(@"选项按钮点击"),但没有任何反应:-(
请告诉我我做错了什么?
更新:当我在self.view中放置"menuView"子视图时,然后在运行并单击optionsButton时,我得到NSLog消息.只有当我将menuView的origin.x指定为480及以上时,它才会起作用.
dan*_*ndi 26
如果您可以看到UIButton,则会设置其userInteractionEnabled(默认情况下为YES!),并且整个层次结构中的superview的userInteractionEnabled为YES - 您应该能够与它进行交互.
动画永远不会改变你的userInteractionEnabled属性!所以你在那里做的事情根本就没有必要.如果您尝试在动画期间启用交互- 这是一个不同的故事,只是传递给动画消息的选项.
所以,如果这不是你的问题(可能不是),那么我猜其中一个superview的框架正在裁剪UIButton!
现在你看,如果一个UIButton(或任何UIView)在UIView的框架之外,它仍然是可见的,除非在superview上设置了clipsToBounds.
那种情况的结果是:你可以看到我,但你不能碰我.
| 归档时间: |
|
| 查看次数: |
15967 次 |
| 最近记录: |