UIScrollView不响应iPhone中的触摸

时间:2010-08-31 19:59:31

标签: iphone

我有一个滚动视图,里面有图像,我正在使用touhesBegan,touchesMoved和touchesEnded来点击图像来放大它。但似乎滚动视图似乎没有响应触摸。

我在类似的问题中尝试过大多数方法,但仍然无效。

我一直在努力,所以请任何帮助都会很感激。 谢谢,

3 个答案:

答案 0 :(得分:0)

您是否在Interface Builder中正确链接了它们?你添加了合适的代表吗?如果没有,则将scrollview链接到Interface Builder中的视图控制器,并确保查看控制器已添加适当的委托。

答案 1 :(得分:0)

UIScrollView处理某些触摸,并且不会将这些事件传递给包含的视图。如果您对滚动视图进行子类化,则可以检查事件并在响应程序链中处理或传递适当的事件。但是您无法处理每个触摸事件,或者scrollview本身将停止工作(滚动,缩放等)

答案 2 :(得分:0)

您是否创建了自定义imageview类来处理触摸?如果没有,那些方法将无法按您的意愿工作。

您需要做的是创建UIImageView的自定义子类,然后使用委托将回滚的内容传达回来:

Ex:MyImageView.h


@protocol MyImageViewDelegate
- (void)imageTouched:(UIImage *)img;
@end
@interface MyImageView : UIImageView {
    id *MyImageViewDelegate* delegate;
}
@property (nonatomic, assign) id *MyImageViewDelegate* delegate;
@end

(分别用< s和>替换*,代码框认为它的html并尝试渲染它)

和MyImageView.m


@implementation MyImageView
@synthesize delegate;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
} 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [delegate imageTouched:self.image];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
}
@end

当您分配/初始化MyImageView时,请确保将委托设置为scrollview。然后在scrollview页面上,输入imageTouched:方法,并在那里处理弹出窗口。