UIGestureRecognizer手势 : 4-滑动手势
滑动手势简介
滑动手势(UISwipeGestureRecognizer)常用于照片管理类App,能够实现照片的滑动显示。滑动手指支持向上、向下、向左、向右四个方面的滑动,在创建滑动手势对象时,需要通过direction属性来指定滑动的方向,默认的滑动方向为向右滑动。
@property(nonatomic) UISwipeGestureRecognizerDirection direction;
其中,UISwipeGestureRecognizerDirection的取值包括:
- UISwipeGestureRecognizerDirectionRight:向右,默认;
- UISwipeGestureRecognizerDirectionLeft:向左;
- UISwipeGestureRecognizerDirectionUp:向上;
- UISwipeGestureRecognizerDirectionDown:向下。
示例代码
下方的示例代码实现了图片的滑动切换功能,首先创建一个UIImageView对象,在这个对象上添加两个滑动手势,分别对应向左滑动以及向右滑动,滑动后可以切换图片的展示。
创建一个Single View Application,并添加4张图片到工程中,图片名称命名为0.png,1.png,2.png,3.png;
在控制器类中,添加一个可变数组对象属性以及一个索引,用于存放图片对象并且记录当前展示第几张图片;
@property(nonatomic,strong) NSMutableArray *imageList;
@property (nonatomic,assign) NSInteger imageIndex;
- 把图片对象存入可变数组中。
-(NSMutableArray *)imageList{
if (_imageList == nil) {
_imageList = [NSMutableArray array];
for (int i = 0; i < 4; i++) {
NSString *imageName = [NSString stringWithFormat:@"%d", i];
UIImage *image = [UIImage imageNamed:imageName];
[_imageList addObject:image];
}
}
return _imageList;
}
- 在viewDidLoad方法中,创建UIImageView对象并且初始化滑动手势对象,分别创建一个向左滑动的对象以及一个向右滑动的对象,最后初始化imageIndex的值;
- (void)viewDidLoad {
[super viewDidLoad];
//创建UIView对象
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 250, 150, 150)];
imageView.image = self.imageList[0];
imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView];
//滑动手势
UISwipeGestureRecognizer *swipeRightGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];
UISwipeGestureRecognizer *swipLeftGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];
swipLeftGesture.direction = UISwipeGestureRecognizerDirectionLeft;
[imageView addGestureRecognizer:swipeRightGesture];
[imageView addGestureRecognizer:swipLeftGesture];
//初始化imageIndex
self.imageIndex = 0;
}
- 添加swipe:方法,实现图片滑动功能,在该方法中,根据gesture参数中的direction的值来区分是向左滑动还是向右滑动。
-(void) swipe: (UISwipeGestureRecognizer *) gesture {
NSLog(@"%s",__func__);
int totalCount = self.imageList.count;
if (gesture.direction == UISwipeGestureRecognizerDirectionLeft) {
if (self.imageIndex >= totalCount -1) return;
self.imageView.image = self.imageList[++self.imageIndex];
}else if (gesture.direction == UISwipeGestureRecognizerDirectionRight) {
if (self.imageIndex <= 0) return;
self.imageView.image = self.imageList[--self.imageIndex];
}
}
示例代码
https://github.com/99ios/8.4.4
文章发布时间为: August 8th , 2016 at 08:17 pm
最后编辑时间为: September 13th , 2017 at 02:56 pm
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 13th , 2017 at 02:56 pm
本文由 99ios 创作,转载请注明出处