手势

手势

userInteractionEnabled叫用户交互,如果没有打开的话没有办法通过手势的方式和它进行交互,如果没有确定是否打开,打印一下就可以,没打开的对象打印会有提醒(一般只有lable,imageView是关的)

  <span style="font-size:18px;"> self.image = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 300, 300)];
    self.image.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:self.image];
    [_image release];
    self.image.image = [UIImage imageNamed:@"5.jpg"];
    // userInteractionEnabled叫用户交互,如果没有打开的话没有办法通过手势的方式和它进行交互
    // 如果不确定交互开没开.打印一下就可以,没打开的对象打印会有提示
    self.image.userInteractionEnabled = YES; // 打印后的结果里userInteractionEnabled = NO消失
//    NSLog(@"%@", self.imageView); // 一般中有imageView, lable是关的
//    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
//    NSLog(@"%@", button);
//    UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(1, 1, 10, 10)];
//    NSLog(@"%@", lable);</span>

手势1.点击

  <span style="font-size:18px;">UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
//    // 把手势添加到视图上
//    [self.imageView addGestureRecognizer:tap];
//    // 内存管理
//    [tap release];
//    // 触发方法需要点击几次,默认是1
//    tap.numberOfTapsRequired = 2;
//    // 手指个数
//    tap.numberOfTouchesRequired = 2;</span>

方法的实现

<span style="font-size:18px;">- (void)tapAction:(UITapGestureRecognizer *)tap{
    NSLog(@"图片被点击");
}</span>

2.长按

<span style="font-size:18px;">//    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
//    [self.image addGestureRecognizer:longPress];
//    //                   数组
//    [longPress release];
//    // 设置触发的最短时间
//    longPress.minimumPressDuration = 2;
//    // 设置可移动的范围
//    longPress.allowableMovement = 300;
//    // 可以按照对应的手势状态来完成判断
//    if (longPress.state == UIGestureRecognizerStateBegan) {
//        NSLog(@"开始了");
//    }</span>

长按的方法

<span style="font-size:18px;">- (void)longPressAction:(UILongPressGestureRecognizer *)longPress{
    NSLog(@"长按了");
}</span>

旋转手势(Alt + 鼠标)

 <span style="font-size:18px;"> UIRotationGestureRecognizer *tapRotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(tapRotation:)];
    [self.image addGestureRecognizer:tapRotation];</span>

旋转的方法

<span style="font-size:18px;">- (void)tapRotation:(UIRotationGestureRecognizer *)tapRotation{
    NSLog(@"旋转了");
    //图片随手势一同旋转
    self.image.transform = CGAffineTransformRotate(self.image.transform, tapRotation.rotation);
//    self.image.transform = CGAffineTransformRotate(self.image.transform, tapRotation.rotation);
    // 控制旋转的速度,速度是叠加的,越来越快,所以要赋初值为0
    tapRotation.rotation = 0;
}</span>

捏合手势

<span style="font-size:18px;">//    UIPinchGestureRecognizer *tapPinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(tapPinch:)];
//    [self.image addGestureRecognizer:tapPinch];</span>

捏合的触发方法

<span style="font-size:18px;">- (void)tapPinch:(UIPinchGestureRecognizer *)tapPinch{
    NSLog(@"捏合");
    self.image.transform = CGAffineTransformScale(self.image.transform, tapPinch.scale, tapPinch.scale);
    tapPinch.scale = 1;
}</span>

拖拽手势

 <span style="font-size:18px;">//5.拖拽
//    //    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];
//    //    [self.image addGestureRecognizer:pan];</span>

拖拽的方法

<span style="font-size:18px;">// 拖拽
- (void)pan:(UIPanGestureRecognizer *)pan{
    NSLog(@"拖拽");
    //先根据手势找到经过的点
    CGPoint p = [pan translationInView:self.image];
    //修改视图的transform
    self.image.transform = CGAffineTransformTranslate(self.image.transform, p.x, p.y);
    [pan setTranslation:CGPointZero inView:self.image];
}</span>

轻扫手势

<span style="font-size:18px;">//6.轻扫手势
//    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
//    [self.image addGestureRecognizer:swipe];
</span>

轻扫的方法

<span style="font-size:18px;">- (void)swipe:(UISwipeGestureRecognizer *)swipe{
    NSLog(@"轻扫");
}</span>

给视图添加一个毛玻璃效果

 <span style="font-size:18px;"> //给视图添加一个毛玻璃效果
//    UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
//    UIVisualEffectView *view = [[UIVisualEffectView alloc]initWithEffect:effect];
//    view.alpha = 0.5f;
//    view.frame = CGRectMake(0, 0, 150, 150);
//    
//    [self.image addSubview:view];
//    [view release];</span>

关于第一响应者的问题(点击下一项,输入框跳到下一个输入框)

称为第一响应者,textField是持续反应的,button是瞬间的事情

<span style="font-size:18px;">- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    if (textField == self.nameView.textField) {
        [self.nameView.textField resignFirstResponder];
        [self.codeView.textField becomeFirstResponder];
    } else if (textField == self.codeView.textField){
        [self.codeView.textField resignFirstResponder];
        [self.checkView.textField becomeFirstResponder];
    } else {
        [self.checkView.textField resignFirstResponder];
    }
    return YES;
}</span>

<span style="font-size:18px;">- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    
    [textField resignFirstResponder];
    if(textField.tag == 10000){
        [self.labelTextViewPW.textField becomeFirstResponder];
    }
    else if (textField.tag == 10001){
        [self.labelTextViewPWAgain.textField becomeFirstResponder];
    }
    
    return YES;
}</span>

屏幕边缘手势

 <span style="font-size:18px;">UIScreenEdgePanGestureRecognizer *screen = [[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(screen:)];
    screen.edges = UIRectEdgeLeft;
    [self.view addGestureRecognizer:screen];
    [screen release];
</span>

方法

<span style="font-size:18px;">- (void)screen:(UIScreenEdgePanGestureRecognizer *)sender{
    NSLog(@"ok");
}</span>


























































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值