UIEvent 分类: UI 2014-09-19 16:02 10人阅读 评论(0) 收藏


 UIEvent:是由设备捕捉到用户对硬件的操作,每个时间都是一个UIevent对象

iOS中的时间有三种:触摸事件,摇晃时间,以及远程控制事件


触摸事件:是由用户对屏幕通过接触产生的事件

对于UIView或者UIView的子类,都能接收到触摸事件,只是没有对于接触事件做出响应

OS支持多点触摸  如果一个视图想要对触摸事件做出响应,只需在该类中实现

touchBegan:      touchEnded:     touchMoved:  等触摸方法.

修改自身视图颜色


改变自身位置
- (void)changeSelfCenter:(CGPoint )point
{
    self.center = CGPointMake((arc4random()%(270-50+1)+50),(arc4random()%(518-50+1)+50));
    self.center = CGPointMake(point.x, point.y);
}



修改子类视图颜色
- (void)changeSubViewColor
{
    self.superview.backgroundColor = [UIColor randomColor];
}


当手指触摸屏幕时触发(刚开始接触)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
 

 

touches 存储触摸屏幕的手指对象
  

每一个手指对象都是一个UITouch类型的对象




 

获取手指对象
    UITouch * touch = [touches anyObject];
   

2.获取点击次数
  
    if ([touch tapCount] == 1) {
   

      [self changeSelfColor];
        
      

延迟执行 performSelector
        [self performSelector:@selector(changeSelfColor) withObject:nil afterDelay:0.25];
    } else if ([touch tapCount] == 2)
    {
      

取消之前的操作.取消之前的任务
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(changeSelfColor) object:nil];
        
        [self changeSubViewColor];
    }
    
    
    
}





当手指在屏幕滑动时触发
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
 


  UITouch * touch  = [touches anyObject];

 CGPoint point = [touch locationInView:self.view];

 [self changeSelfCenter:point];
    
    
}




当手指离开屏幕时触发(触摸结束时)
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
 

}




当触摸被取消时,前提是手指触摸屏幕(如:来电话时)
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
 

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

你可能感兴趣的:(event)