本文主要是介绍使用手势(UITapGestureRecognizer)获取照片墙上首次点击图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
在写shareAPP时需要将选择的第一个图片返回至上层界面,首先得获取首次被点击的图片,通过查资料得知可设一个UIImage属性,将手势点击的第一个图片传给它。但我不太会同时使用UIButton和手势在同一个UIImageView上,使用该手势好像影响了button的实现,我后来还是将手势去掉了。可能以后会使用到,还是记录下来吧。
思路
1.创建一个照片墙,可以看这篇
2.每张图片上都添加手势,创建点击手势函数
3.在手势函数中,若创建的UIImage属性值为nil,则将点击的图片赋值给它
代码
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view//创建照片墙//创建一个UIScrollViewUIScrollView *imageScrollView = [[UIScrollView alloc] init];imageScrollView.frame = CGRectMake(10, 0, 395, 600);imageScrollView.contentSize = CGSizeMake(395, 600 * 1.5);imageScrollView.showsVerticalScrollIndicator = NO;//打开交互模式imageScrollView.userInteractionEnabled = YES;for(int i = 0; i < 30; i++){//加入图片NSString *strName = [NSString stringWithFormat:@"image-%d.jpg", i + 1];UIImage *image = [UIImage imageNamed: strName];UIImageView *imageView = [[UIImageView alloc] initWithImage:image];imageView.frame = CGRectMake(2 + (i % 4) * 100, (i / 4) * 110 + 5 , 95, 105);[imageScrollView addSubview: imageView];//打开图片的交互模式imageView.userInteractionEnabled = YES;//创建手势UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pressTap:)];//单次点击tap.numberOfTapsRequired = 1;//单个手指tap.numberOfTouchesRequired = 1; //将手势添加在imageView中[imageView addGestureRecognizer:tap];}[self.view addSubview:imageScrollView];
}//手势点击函数
- (void)pressTap: (UITapGestureRecognizer *) tap{UIImageView *imageView = [[UIImageView alloc] init];//imageView为手势点击的imageViewimageView = (UIImageView *)tap.view;//确定为第一次点击if(!_image){_image = [[UIImage alloc] init];_image = imageView.image;}}
这篇关于使用手势(UITapGestureRecognizer)获取照片墙上首次点击图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!