博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS中文API之UITouch详解
阅读量:5076 次
发布时间:2019-06-12

本文共 1960 字,大约阅读时间需要 6 分钟。

  UITouch 对象用于位置、 大小、 运动和一根手指在屏幕上为某一特定事件的力度。触摸的力度是从开始在 iOS 9 支持 3D 的触摸的设备上可用。你可以通过UIEvent对象传递给响应者对象访问。一个UITouch对象包括访问器:

  引起触摸的视图或Window.

@property(nullable,nonatomic,readonly,strong) UIWindow *window

@property(nullable,nonatomic,readonly,strong) UIView      *view

 

  触摸在视图或Window的位置坐标.

- (CGPoint)locationInView:(nullable UIView *)view

 

  触摸的半径.

@property(nonatomic,readonly) CGFloat altitudeAngle

 

  触摸的力度(支持iOS9.0以上)

@property(nonatomic,readonly) CGFloat force

 

  UITouch对象还包含一个指示触摸发生时间的时间戳,一个整数表示用户点击屏幕的次数,在触摸阶段以常量的形式描述触摸是否开始,移动,或结束,或者是否为系统取消触摸。

  一个触摸对象始终存留一个触摸序列。处理事件时,永远不会保留一个触摸对象。如果你需要从一个触摸阶段到另一个阶段保留有关触摸信息,就应该复制该信息。
  触摸的 gestureRecognizers 属性包含当前正在处理的触摸手势识别器。每个手势识别器是 UIGestureRecognizer 具体子类的一个实例。

 

  下面是一个实例

我在ViewController定义2个UIVIEW实例对象

@interface ViewController : UIViewController@property (nonatomic, strong) UIView *viewA;@property (nonatomic, strong) UIView *viewB;@end

 

然后

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    self.viewA =[[UIView alloc] initWithFrame:CGRectMake(10, 30, 48, 48)];

    self.viewA.backgroundColor  = [UIColor blackColor];

    [self.view addSubview:self.viewA];

    

    self.viewB =[[UIView alloc] initWithFrame:CGRectMake(10, 100, 48, 48)];

    self.viewB.backgroundColor  = [UIColor redColor];

    [self.view addSubview:self.viewB];

    

    NSLog(@"viewA:%@ \n viewB:%@ \n window:%@",self.viewA,self.viewB,[[[UIApplication sharedApplication] windows] objectAtIndex:0]);

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

//    NSLog(@"%@",[touches anyObject]);

    UITouch *touctObj = [touches anyObject];

    NSLog(@"touch:%@ \n view:%@ \n window:%@",touctObj,[touctObj view],[touctObj window]);

}

 

触摸以外区域我们可以看到view不是viewa也不是viewb,它是控制器的view.window是应用程序的window.

 

   总之,UITouch对象包含一些发生触摸的信息。引起触摸的视图或window。

 

转载于:https://www.cnblogs.com/salam/p/5054212.html

你可能感兴趣的文章
Pyspider
查看>>
TCP与UDP区别(转)
查看>>
.NET 开发: 确定计算机上已安装的 .NET Framework 版本
查看>>
Python进阶05 循环设计
查看>>
关于Cocos2d-x手机上运行游戏的时候屏幕横屏改竖屏的解决方案
查看>>
QT qRegisterMetaType 注册MetaType
查看>>
常用类的课后作业
查看>>
svg 矢量图
查看>>
PHP PDO函数库详解
查看>>
机器学习之线性回归
查看>>
【Golang 接口自动化00】为什么要用Golang做自动化?
查看>>
Python图表绘制:matplotlib绘图库入门(转)
查看>>
2019 GPL 天梯赛总结
查看>>
字符串问题----去掉字符串中连续出现K个0的子串
查看>>
设计模式之建造者模式
查看>>
asp.net mvc源码分析-ModelValidatorProviders
查看>>
【Mac系统】istatmenus6.20下载以及激活
查看>>
repeter选中行变色
查看>>
Python_15函数
查看>>
获取到某一方法的调用者的类名、方法名、命名空间(转)
查看>>