在view上面加了个ScrollView,怎样响应touch事件

 我来答
he...5@33sn.cc
2017-05-19 · 超过50用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:89.7万
展开全部
UIScrollView本身无法处理touch事件
要想实现,必须对UIScrollView上的subView做touch处理
原理十分简单,好比要响应scrollView上的UIImageView,那么请创建一个UIImageVIew的子类,由这个自定义的UIImageView来处理touch事件
头文件声明如下,供参考:
#import <Foundation/Foundation.h>

@protocol ImageTouchDelegate
-(void)imageTouch:(NSSet *)touches withEvent:(UIEvent *)event whichView:(id)imageView;
@end

@interface ImageTouchView : UIImageView
{
id<ImageTouchDelegate> delegate;
BOOL delegatrue;
}
@property(nonatomic,assign)id<ImageTouchDelegate> delegate;

@end
这个是头文件,源文件可以是这个这样子

@implementation ImageTouchView
@synthesize delegate;

-(id)initWithFrame:(CGRect)frame
{
if (self == [super initWithFrame:frame])
{
[self setUserInteractionEnabled:YES];
delegatrue=YES;
}
return self;
}
- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view
{
return YES;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (delegatrue)
{
[delegate imageTouch:touches withEvent:event whichView:self];
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式