- #pragma mark 开始触摸
- - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- {
- // 获取第一个触摸的点
- UITouch *touch = [touches anyObject];
- // 获取这点相对于window坐标
- CGPoint point = [touch locationInView:self.window];
- // 将x轴与y轴差值赋值给实例变量
- _x = point.x - self.center.x;
- _y = point.y - self.center.y;
- }
- #pragma mark 触摸过程中
- - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- {
- // 1. 在集合中取出触摸的点
- UITouch *touch = [touches anyObject];
- // 2. 获取这个点坐标信息 (针对window或者自身)
- CGPoint point = [touch locationInView:self.window];
- NSLog(@"%@", NSStringFromCGPoint(point));
- CGFloat x = point.x - _x;
- CGFloat y = point.y - _y;
- self.center = CGPointMake(x, y); // 中心点坐标
- }
- #pragma mark 触摸结束
- - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
- {
- NSLog(@"%d %s", __LINE__, __FUNCTION__);
- CGFloat red = (arc4random() % 256) / 255.0;
- CGFloat green = (arc4random() % 256) / 255.0;
- CGFloat blue = (arc4random() % 256) / 255.0;
- self.backgroundColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0f];
- }
- #pragma mark 触摸被取消
- - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
- {
- NSLog(@"%d %s", __LINE__, __FUNCTION__);
- }
时间: 2024-10-12 19:44:50