Demo:http://download.csdn.net/detail/u012881779/8648105
很多时候需要UIScrollView相应触摸事件,如此就需要使用Category横向扩展UIScrollView了。
1.创建继承于UIScrollView的Category
iOS -> Source -> Objective-C File
2.在UIScrollView+UITouch.m中进行功能拓展
#import "UIScrollView+UITouch.h"
@implementation UIScrollView (UITouch)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[[self nextResponder] touchesBegan:touches withEvent:event];
[super touchesBegan:touches withEvent:event];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
[[self nextResponder] touchesMoved:touches withEvent:event];
[super touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[[self nextResponder] touchesEnded:touches withEvent:event];
[super touchesEnded:touches withEvent:event];
}
@end
3.验证UIScrollView可以响应触摸事件
需要代码里添加加:_scrollView.delaysContentTouches = NO;
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_scrollView.delaysContentTouches = NO;
}
//触摸开始
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"触摸开始");
}
//触摸移动
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"触摸移动");
}
//触摸结束
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"触摸结束");
}
@end
如此便可以在ScrollView区域响应触摸事件了