iOS 简单的手势 。拖动,缩放

iOS 简单的手势 。拖动,缩放,第1张

1、拍击UITapGestureRecognizer (任意次数的拍击)

2、向里或向外捏UIPinchGestureRecognizer (用于缩放)

3、摇动或者拖拽UIPanGestureRecognizer (拖动)

4、擦碰UISwipeGestureRecognizer (以任意方向)

5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)

6、长按UILongPressGestureRecognizer (长按)

UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]

btn.backgroundColor = [UIColor redColor]

[self.view addSubview:btn]

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]//创建手势

[btn setUserInteractionEnabled:YES]//设置启用用户交互

[btn addGestureRecognizer:pan]//把手势添加到控件

- (void) handlePan: (UIPanGestureRecognizer *)rec{

// NSLog(@"xxoo---xxoo---xxoo")

CGPoint point = [rec translationInView:self.view]

//该方法返回在横坐标上、纵坐标上拖动了多少像素

NSLog(@"%f,%f",point.x,point.y)

rec.view.center = CGPointMake(rec.view.center.x + point.x, rec.view.center.y + point.y)

//rec.view 指的是把rec添加到那个控件上的

// 因为拖动起来一直是在递增,所以每次都要用setTranslation:方法制0这样才不至于不受控制般滑动出视图

[rec setTranslation:CGPointMake(0, 0) inView:self.view]

}

//缩放

UIPinchGestureRecognizer *ping = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)]

[btn setUserInteractionEnabled:YES]//设置启用用户交互

[btn addGestureRecognizer:ping]

-(void) handlePinch:(UIPinchGestureRecognizer *)rec

{

NSLog(@" recognizer.scale------%f",rec.scale

)//缩放的倍数,

// view.transform 为原来的 状态;

rec.view.transform=CGAffineTransformScale(rec.view.transform, rec.scale,rec.scale)

}

我想你表达的意思不够清晰吧!我的理解是:这个button并不是作为listview的一部分是吧,而是单独的在屏幕下方,那如果是这个样子的话,我想你是可以实现的。因为一个布局文件中同时存在listview和button不是什么问题吧。如果你真是这样遇到了困难的话,那么请用相对布局,将button设置成为在布局的里端,而listview则设置为位于button上方便可,如果你不放心的话,直接给listview设置一个高度定值便可。

如果我会错了意,那么你的问题具体是?


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11394174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存