zoukankan      html  css  js  c++  java
  • TouchView

      UIEvent:事件类。在IOS中将用户的操作封装了一个类是UIEventUIEvent根据用户的操作分为三种类型:触摸、晃动、远程控制。

      触摸对应的UI类是UITouch。

    #import "RootViewController.h"
    #import "TouchView.h"
    
    @interface RootViewController ()
    
    @end
    
    @implementation RootViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
      
        TouchView *touchView = [[TouchView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; // 创建对象
        touchView.backgroundColor = [UIColor redColor];
        [self.view addSubview:touchView];
        [touchView release];
    }
    

      

    #import "TouchView.h"
    
    @implementation TouchView
    
    // 触摸开始时执行该方法
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        // 打印执行代码的行数及执行的方法名,方便跟踪
        NSLog(@"%s == %d",__FUNCTION__, __LINE__);
    }
    
    // 触摸移动时执行该方法
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
    //    self.backgroundColor = [UIColor colorWithRed:(arc4random() % 256 / 255.0) green:(arc4random() % 256 / 255.0) blue:(arc4random() % 256 / 255.0) alpha:1];
        
        UITouch *touch = [touches anyObject]; // NSSet 取值方法
        CGPoint point1 = [touch locationInView:self.superview]; // 当前点
        CGPoint point2 = [touch previousLocationInView:self.superview]; // 前一个点
        CGFloat x = point1.x - point2.x; 
        CGFloat y = point1.y - point2.y;
        CGRect frame = self.frame;
        frame.origin.x += x;
        frame.origin.y += y;
        self.frame = frame;
     
        NSLog(@"%s == %d",__FUNCTION__, __LINE__);
    }
    
    // 触摸结束时执行该方法
    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
    {
        NSLog(@"%s == %d",__FUNCTION__, __LINE__);
        // self.backgroundColor = [UIColor yellowColor];
    }
    
    // 触摸被中断时执行该方法
    - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
    {
        NSLog(@"%s == %d",__FUNCTION__, __LINE__);
    }
    

      

  • 相关阅读:
    js中return false,return,return true的用法及区别
    C#中关于页面缓存
    项目运行时出现webconfig="machineApplication......."之类的错误
    后台页面无法找到前台页面控件的ID
    .NET对文件的多种操作
    前台JS代码向后台传递参数
    多条件查询的Gridview分页显示
    C#中对数据做视图处理RowFilter
    JavaScript自触发时的参数传递
    Sys.WebForms.PageRequestManagerTimeoutException:服务器请求超时
  • 原文地址:https://www.cnblogs.com/sqdhy-zq/p/4764381.html
Copyright © 2011-2022 走看看