我有一个uiscrollview里面有一个uiimageview。我是uiscrollview的子类,但我无法触及工作touchbegin没有调用。我该怎么做才能召集uitouch活动?
出了什么问题?
·H
#import <UIKit/UIKit.h>
@interface myScrollView : UIScrollView {
}
@end
的.m
#import "myScrollView.h"
@implementation myScrollView
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
if (touch.view.tag > 0) {
touch.view.center = location;
}
NSLog(@"tag=%@", [NSString stringWithFormat:@"%i", touch.view.tag]);
}
答案 0 :(得分:0)
确保在UIImageView中打开userInteractionEnabled(对于那些人默认关闭)。
答案 1 :(得分:0)
阅读Event Handling,看看你是否能从中找到任何结论。您也可以尝试canBecomeFirstResponder
和becomeFirstResponder
。
答案 2 :(得分:0)
您如何使用这些视图? 你是从IB还是从代码创建的? 要检查的事项:
答案 3 :(得分:0)
使用2.0+编译器,一切都按预期工作,但现在我必须使用3.0+编译器,我的UIScrollView不再接收触摸事件。
我在这里找到了问题的答案:
基本上,苹果在3.0中删除了这个能力在2.2.1及更早版本中,它是可能的 防止UIScrollView 通过实现滚动来滚动 UIResponder触摸方法 子类而不是调用 超类的实现。这是 从来没有得到支持,而且经常导致 不一致的状态 UIScrollView,但它确实有效 具体情况