zoukankan      html  css  js  c++  java
  • (ios) 屏幕触摸总结

    1  屏幕触控实现(单击 双击)

      [self becomeFirstResponder];
         //允许多点互动
         self.view.multipleTouchEnabled=TRUE;

    实现事件部分

    #pragma mark-
    #pragma mark touch 
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
    
         //触摸开始
       
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
    
        //移动
        
    }
    
    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
    {
      //结束
     UITouch *atouch=[touches anyObject];
        if(atouch.tapCount>=2)
        {
            //双击
        }
        else if(atouch.tapCount==1)
        {
        
           //单击
        }
    }
    - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
    {
    
    
    }

    2 手势识别(UIlabel 点击事件实现)

      //设置图片的点击事件
        UITapGestureRecognizer *recongnizer=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapFrom:)];
    recongnizer.numberOfTapsRequired=1;
         self.img.userInteractionEnabled=YES;
        [self.img addGestureRecognizer:recongnizer];
    }
    
    -(void)handleTapFrom:(UITapGestureRecognizer *)recognizer{
          [self updateDisplayValuesWithTip:@"tap" tapCount:1 touchCount:1];
    }
     

    3 屏幕晃动实现

    //AppDelegate 中实现
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        application.applicationSupportsShakeToEdit = YES;
    }
    
    //或者代码中实现
     [[UIApplication sharedApplication] setApplicationSupportsShakeToEdit:YES];
    
    //ViewController 中实现下面方法
    
    - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0);
    {
    
    }
    - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0)
    {
        if (event.subtype == UIEventSubtypeMotionShake) {
            
            //摇一摇 行为
             
        }
    }
    - (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event NS_AVAILABLE_IOS(3_0)
    {
    
    } 

     4 图片滑动换页

    UISwipeGestureRecognizer *recognizer;
           self.img.userInteractionEnabled=YES;
        recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
        [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
        [[self img] addGestureRecognizer:recognizer];
        
        
        
    }
    -(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
        NSLog(@"Swipe received.");
        
        if (recognizer.direction==UISwipeGestureRecognizerDirectionRight) {
            NSLog(@"swipe down");
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:2.0f];
            [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
            [UIView setAnimationRepeatAutoreverses:NO];
            [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
            //界面变化部分
           //........
            
            [UIView commitAnimations];
        }
    }
  • 相关阅读:
    SqlServer报错:指定的网络名不再可用
    Flutter Build apk 错误(一)
    修改项目语言为C#8.0
    Foxmail6.5 ERR LOGIN FAIL 重新输入口令
    VSCode调试Flutter的问题解决
    解决localdb中文智能的问题
    EF Oracle:错误 175
    清除SqlServer日志
    EF:根据实体类生成表结构SQL
    修改TNSLSNR的端口
  • 原文地址:https://www.cnblogs.com/macroxu-1982/p/3521396.html
Copyright © 2011-2022 走看看