区块链技术博客
www.b2bchain.cn

iOS响应链那些事求职学习资料

本文介绍了iOS响应链那些事求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

一、响应链相关的两个核心函数

a、返回当前可以响应的此次操作的视图

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

b、返回当前碰触的屏幕坐标是否在当前视图中

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

二、响应链逻辑实验相关代码

自定义Button1、Button2、Button3 继承自UIButton,重写hitTest、pointInside两个函数增加log

以Button1举例:

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{     NSLog(@"-----hitTest star Button1-----");     UIView* view = [super hitTest:point withEvent:event];     NSLog(@"-----hitTest end Button1----- %@",view);     return view; }  - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{     BOOL result = [super pointInside:point withEvent:event];     NSLog(@"-----pointInside Button1----- %@",@(result));     return result; }

实验一、将三个button实例化,平行添加到VC视图中,互相不重叠

    Button1 *btn1 = [[Button1 alloc]initWithFrame:CGRectMake(100, 100, 50, 50)];     [btn1 setTitle:@"btn1" forState:UIControlStateNormal];     btn1.backgroundColor = [UIColor redColor];      Button2 *btn2 = [[Button2 alloc]initWithFrame:CGRectMake(160, 100, 50, 50)];     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];     btn2.backgroundColor = [UIColor yellowColor];      Button3 *btn3 = [[Button3 alloc]initWithFrame:CGRectMake(220, 100, 50, 50)];     [btn3 setTitle:@"btn3" forState:UIControlStateNormal];     btn3.backgroundColor = [UIColor blueColor];      [self.view addSubview:btn1];     [self.view addSubview:btn2];     [self.view addSubview:btn3];

iOS响应链那些事

操作一:此时点击空白处,打印log如下:

2020-04-05 14:35:28.522130+0800 hitTestDemo[1815:64004] -----hitTest star Button3----- 2020-04-05 14:35:28.522224+0800 hitTestDemo[1815:64004] -----pointInside Button3----- 0 2020-04-05 14:35:28.522281+0800 hitTestDemo[1815:64004] -----hitTest end Button3----- (null) 2020-04-05 14:35:28.522333+0800 hitTestDemo[1815:64004] -----hitTest star Button2----- 2020-04-05 14:35:28.522382+0800 hitTestDemo[1815:64004] -----pointInside Button2----- 0 2020-04-05 14:35:28.522449+0800 hitTestDemo[1815:64004] -----hitTest end Button2----- (null) 2020-04-05 14:35:28.522512+0800 hitTestDemo[1815:64004] -----hitTest star Button1----- 2020-04-05 14:35:28.522613+0800 hitTestDemo[1815:64004] -----pointInside Button1----- 0 2020-04-05 14:35:28.522662+0800 hitTestDemo[1815:64004] -----hitTest end Button1----- (null)  //执行第二遍 2020-04-05 14:35:28.522748+0800 hitTestDemo[1815:64004] -----hitTest star Button3----- 2020-04-05 14:35:28.522793+0800 hitTestDemo[1815:64004] -----pointInside Button3----- 0 2020-04-05 14:35:28.522877+0800 hitTestDemo[1815:64004] -----hitTest end Button3----- (null) 2020-04-05 14:35:28.523017+0800 hitTestDemo[1815:64004] -----hitTest star Button2----- 2020-04-05 14:35:28.542243+0800 hitTestDemo[1815:64004] -----pointInside Button2----- 0 2020-04-05 14:35:28.542305+0800 hitTestDemo[1815:64004] -----hitTest end Button2----- (null) 2020-04-05 14:35:28.542364+0800 hitTestDemo[1815:64004] -----hitTest star Button1----- 2020-04-05 14:35:28.542424+0800 hitTestDemo[1815:64004] -----pointInside Button1----- 0 2020-04-05 14:35:28.542466+0800 hitTestDemo[1815:64004] -----hitTest end Button1----- (null)

根据log可见,主视图view的hitTest中会遍历所有子视图,并执行子视图的hitTest方法,遍历顺序是subviews数组的倒序。

点击空白视图的时候,Button1、Button2、Button3 分别执行中hitTest,在hitTest中调用pointInside,均返回了0,说明当前碰触的屏幕坐标均不在三个视图中;hitTest返回的值都是null,说明当前操作,这三个视图均无法提供可以响应此次操作的视图。

操作二:此时点击红色按钮Button1,打印log如下:

2020-04-05 14:46:34.098658+0800 hitTestDemo[1899:72303] -----hitTest star Button3----- 2020-04-05 14:46:34.098857+0800 hitTestDemo[1899:72303] -----pointInside Button3----- 0 2020-04-05 14:46:34.098970+0800 hitTestDemo[1899:72303] -----hitTest end Button3----- (null) 2020-04-05 14:46:34.099065+0800 hitTestDemo[1899:72303] -----hitTest star Button2----- 2020-04-05 14:46:34.099160+0800 hitTestDemo[1899:72303] -----pointInside Button2----- 0 2020-04-05 14:46:34.099247+0800 hitTestDemo[1899:72303] -----hitTest end Button2----- (null) 2020-04-05 14:46:34.099315+0800 hitTestDemo[1899:72303] -----hitTest star Button1----- 2020-04-05 14:46:34.099393+0800 hitTestDemo[1899:72303] -----pointInside Button1----- 1 2020-04-05 14:46:34.099888+0800 hitTestDemo[1899:72303] -----hitTest end Button1----- <Button1: 0x7fee0ea07c00; baseClass = UIButton; frame = (100 100; 50 50); opaque = NO; layer = <CALayer: 0x600000fad6a0>>  //执行第二遍 2020-04-05 14:46:34.100059+0800 hitTestDemo[1899:72303] -----hitTest star Button3----- 2020-04-05 14:46:34.100147+0800 hitTestDemo[1899:72303] -----pointInside Button3----- 0 2020-04-05 14:46:34.100229+0800 hitTestDemo[1899:72303] -----hitTest end Button3----- (null) 2020-04-05 14:46:34.100310+0800 hitTestDemo[1899:72303] -----hitTest star Button2----- 2020-04-05 14:46:34.100397+0800 hitTestDemo[1899:72303] -----pointInside Button2----- 0 2020-04-05 14:46:34.100467+0800 hitTestDemo[1899:72303] -----hitTest end Button2----- (null) 2020-04-05 14:46:34.101958+0800 hitTestDemo[1899:72303] -----hitTest star Button1----- 2020-04-05 14:46:34.102017+0800 hitTestDemo[1899:72303] -----pointInside Button1----- 1 2020-04-05 14:46:34.102108+0800 hitTestDemo[1899:72303] -----hitTest end Button1----- <Button1: 0x7fee0ea07c00; baseClass = UIButton; frame = (100 100; 50 50); opaque = NO; layer = <CALayer: 0x600000fad6a0>>

点击Button1视图的时候,仍然是从Button3进行检测,直到检测到Button1时,pointInside返回的值为1,说明当前碰触的屏幕坐标在Button1视图中;Button1的hitTest返回的值是Button1实例,说明当前操作可以被Button1实例响应

实验二、Button1添加到主视图上,Button2和Button3平行添加到Button1上,Button2和Button3是Button1的子视图

    Button1 *btn1 = [[Button1 alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];     [btn1 setTitle:@"btn1" forState:UIControlStateNormal];     btn1.userInteractionEnabled = false;     btn1.backgroundColor = [UIColor redColor];      Button2 *btn2 = [[Button2 alloc]initWithFrame:CGRectMake(30, 30, 50, 50)];     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];     btn2.backgroundColor = [UIColor yellowColor];      Button3 *btn3 = [[Button3 alloc]initWithFrame:CGRectMake(110, 30, 50, 50)];     [btn3 setTitle:@"btn3" forState:UIControlStateNormal];     btn3.backgroundColor = [UIColor blueColor];      [self.view addSubview:btn1];     [btn1 addSubview:btn2];     [btn1 addSubview:btn3];

iOS响应链那些事

操作一:此时点击空白处,打印log如下:

一、响应链相关的两个核心函数

a、返回当前可以响应的此次操作的视图

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

b、返回当前碰触的屏幕坐标是否在当前视图中

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

二、响应链逻辑实验相关代码

自定义Button1、Button2、Button3 继承自UIButton,重写hitTest、pointInside两个函数增加log

以Button1举例:

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{     NSLog(@"-----hitTest star Button1-----");     UIView* view = [super hitTest:point withEvent:event];     NSLog(@"-----hitTest end Button1----- %@",view);     return view; }  - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{     BOOL result = [super pointInside:point withEvent:event];     NSLog(@"-----pointInside Button1----- %@",@(result));     return result; }

实验一、将三个button实例化,平行添加到VC视图中,互相不重叠

    Button1 *btn1 = [[Button1 alloc]initWithFrame:CGRectMake(100, 100, 50, 50)];     [btn1 setTitle:@"btn1" forState:UIControlStateNormal];     btn1.backgroundColor = [UIColor redColor];      Button2 *btn2 = [[Button2 alloc]initWithFrame:CGRectMake(160, 100, 50, 50)];     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];     btn2.backgroundColor = [UIColor yellowColor];      Button3 *btn3 = [[Button3 alloc]initWithFrame:CGRectMake(220, 100, 50, 50)];     [btn3 setTitle:@"btn3" forState:UIControlStateNormal];     btn3.backgroundColor = [UIColor blueColor];      [self.view addSubview:btn1];     [self.view addSubview:btn2];     [self.view addSubview:btn3];

iOS响应链那些事

操作一:此时点击空白处,打印log如下:

2020-04-05 14:35:28.522130+0800 hitTestDemo[1815:64004] -----hitTest star Button3----- 2020-04-05 14:35:28.522224+0800 hitTestDemo[1815:64004] -----pointInside Button3----- 0 2020-04-05 14:35:28.522281+0800 hitTestDemo[1815:64004] -----hitTest end Button3----- (null) 2020-04-05 14:35:28.522333+0800 hitTestDemo[1815:64004] -----hitTest star Button2----- 2020-04-05 14:35:28.522382+0800 hitTestDemo[1815:64004] -----pointInside Button2----- 0 2020-04-05 14:35:28.522449+0800 hitTestDemo[1815:64004] -----hitTest end Button2----- (null) 2020-04-05 14:35:28.522512+0800 hitTestDemo[1815:64004] -----hitTest star Button1----- 2020-04-05 14:35:28.522613+0800 hitTestDemo[1815:64004] -----pointInside Button1----- 0 2020-04-05 14:35:28.522662+0800 hitTestDemo[1815:64004] -----hitTest end Button1----- (null)  //执行第二遍 2020-04-05 14:35:28.522748+0800 hitTestDemo[1815:64004] -----hitTest star Button3----- 2020-04-05 14:35:28.522793+0800 hitTestDemo[1815:64004] -----pointInside Button3----- 0 2020-04-05 14:35:28.522877+0800 hitTestDemo[1815:64004] -----hitTest end Button3----- (null) 2020-04-05 14:35:28.523017+0800 hitTestDemo[1815:64004] -----hitTest star Button2----- 2020-04-05 14:35:28.542243+0800 hitTestDemo[1815:64004] -----pointInside Button2----- 0 2020-04-05 14:35:28.542305+0800 hitTestDemo[1815:64004] -----hitTest end Button2----- (null) 2020-04-05 14:35:28.542364+0800 hitTestDemo[1815:64004] -----hitTest star Button1----- 2020-04-05 14:35:28.542424+0800 hitTestDemo[1815:64004] -----pointInside Button1----- 0 2020-04-05 14:35:28.542466+0800 hitTestDemo[1815:64004] -----hitTest end Button1----- (null)

根据log可见,主视图view的hitTest中会遍历所有子视图,并执行子视图的hitTest方法,遍历顺序是subviews数组的倒序。

点击空白视图的时候,Button1、Button2、Button3 分别执行中hitTest,在hitTest中调用pointInside,均返回了0,说明当前碰触的屏幕坐标均不在三个视图中;hitTest返回的值都是null,说明当前操作,这三个视图均无法提供可以响应此次操作的视图。

操作二:此时点击红色按钮Button1,打印log如下:

2020-04-05 14:46:34.098658+0800 hitTestDemo[1899:72303] -----hitTest star Button3----- 2020-04-05 14:46:34.098857+0800 hitTestDemo[1899:72303] -----pointInside Button3----- 0 2020-04-05 14:46:34.098970+0800 hitTestDemo[1899:72303] -----hitTest end Button3----- (null) 2020-04-05 14:46:34.099065+0800 hitTestDemo[1899:72303] -----hitTest star Button2----- 2020-04-05 14:46:34.099160+0800 hitTestDemo[1899:72303] -----pointInside Button2----- 0 2020-04-05 14:46:34.099247+0800 hitTestDemo[1899:72303] -----hitTest end Button2----- (null) 2020-04-05 14:46:34.099315+0800 hitTestDemo[1899:72303] -----hitTest star Button1----- 2020-04-05 14:46:34.099393+0800 hitTestDemo[1899:72303] -----pointInside Button1----- 1 2020-04-05 14:46:34.099888+0800 hitTestDemo[1899:72303] -----hitTest end Button1----- <Button1: 0x7fee0ea07c00; baseClass = UIButton; frame = (100 100; 50 50); opaque = NO; layer = <CALayer: 0x600000fad6a0>>  //执行第二遍 2020-04-05 14:46:34.100059+0800 hitTestDemo[1899:72303] -----hitTest star Button3----- 2020-04-05 14:46:34.100147+0800 hitTestDemo[1899:72303] -----pointInside Button3----- 0 2020-04-05 14:46:34.100229+0800 hitTestDemo[1899:72303] -----hitTest end Button3----- (null) 2020-04-05 14:46:34.100310+0800 hitTestDemo[1899:72303] -----hitTest star Button2----- 2020-04-05 14:46:34.100397+0800 hitTestDemo[1899:72303] -----pointInside Button2----- 0 2020-04-05 14:46:34.100467+0800 hitTestDemo[1899:72303] -----hitTest end Button2----- (null) 2020-04-05 14:46:34.101958+0800 hitTestDemo[1899:72303] -----hitTest star Button1----- 2020-04-05 14:46:34.102017+0800 hitTestDemo[1899:72303] -----pointInside Button1----- 1 2020-04-05 14:46:34.102108+0800 hitTestDemo[1899:72303] -----hitTest end Button1----- <Button1: 0x7fee0ea07c00; baseClass = UIButton; frame = (100 100; 50 50); opaque = NO; layer = <CALayer: 0x600000fad6a0>>

点击Button1视图的时候,仍然是从Button3进行检测,直到检测到Button1时,pointInside返回的值为1,说明当前碰触的屏幕坐标在Button1视图中;Button1的hitTest返回的值是Button1实例,说明当前操作可以被Button1实例响应

实验二、Button1添加到主视图上,Button2和Button3平行添加到Button1上,Button2和Button3是Button1的子视图

    Button1 *btn1 = [[Button1 alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];     [btn1 setTitle:@"btn1" forState:UIControlStateNormal];     btn1.userInteractionEnabled = false;     btn1.backgroundColor = [UIColor redColor];      Button2 *btn2 = [[Button2 alloc]initWithFrame:CGRectMake(30, 30, 50, 50)];     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];     btn2.backgroundColor = [UIColor yellowColor];      Button3 *btn3 = [[Button3 alloc]initWithFrame:CGRectMake(110, 30, 50, 50)];     [btn3 setTitle:@"btn3" forState:UIControlStateNormal];     btn3.backgroundColor = [UIColor blueColor];      [self.view addSubview:btn1];     [btn1 addSubview:btn2];     [btn1 addSubview:btn3];

iOS响应链那些事

操作一:此时点击空白处,打印log如下:

一、响应链相关的两个核心函数

a、返回当前可以响应的此次操作的视图

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

b、返回当前碰触的屏幕坐标是否在当前视图中

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

二、响应链逻辑实验相关代码

自定义Button1、Button2、Button3 继承自UIButton,重写hitTest、pointInside两个函数增加log

以Button1举例:

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{     NSLog(@"-----hitTest star Button1-----");     UIView* view = [super hitTest:point withEvent:event];     NSLog(@"-----hitTest end Button1----- %@",view);     return view; }  - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{     BOOL result = [super pointInside:point withEvent:event];     NSLog(@"-----pointInside Button1----- %@",@(result));     return result; }

实验一、将三个button实例化,平行添加到VC视图中,互相不重叠

    Button1 *btn1 = [[Button1 alloc]initWithFrame:CGRectMake(100, 100, 50, 50)];     [btn1 setTitle:@"btn1" forState:UIControlStateNormal];     btn1.backgroundColor = [UIColor redColor];      Button2 *btn2 = [[Button2 alloc]initWithFrame:CGRectMake(160, 100, 50, 50)];     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];     btn2.backgroundColor = [UIColor yellowColor];      Button3 *btn3 = [[Button3 alloc]initWithFrame:CGRectMake(220, 100, 50, 50)];     [btn3 setTitle:@"btn3" forState:UIControlStateNormal];     btn3.backgroundColor = [UIColor blueColor];      [self.view addSubview:btn1];     [self.view addSubview:btn2];     [self.view addSubview:btn3];

iOS响应链那些事

操作一:此时点击空白处,打印log如下:

2020-04-05 14:35:28.522130+0800 hitTestDemo[1815:64004] -----hitTest star Button3----- 2020-04-05 14:35:28.522224+0800 hitTestDemo[1815:64004] -----pointInside Button3----- 0 2020-04-05 14:35:28.522281+0800 hitTestDemo[1815:64004] -----hitTest end Button3----- (null) 2020-04-05 14:35:28.522333+0800 hitTestDemo[1815:64004] -----hitTest star Button2----- 2020-04-05 14:35:28.522382+0800 hitTestDemo[1815:64004] -----pointInside Button2----- 0 2020-04-05 14:35:28.522449+0800 hitTestDemo[1815:64004] -----hitTest end Button2----- (null) 2020-04-05 14:35:28.522512+0800 hitTestDemo[1815:64004] -----hitTest star Button1----- 2020-04-05 14:35:28.522613+0800 hitTestDemo[1815:64004] -----pointInside Button1----- 0 2020-04-05 14:35:28.522662+0800 hitTestDemo[1815:64004] -----hitTest end Button1----- (null)  //执行第二遍 2020-04-05 14:35:28.522748+0800 hitTestDemo[1815:64004] -----hitTest star Button3----- 2020-04-05 14:35:28.522793+0800 hitTestDemo[1815:64004] -----pointInside Button3----- 0 2020-04-05 14:35:28.522877+0800 hitTestDemo[1815:64004] -----hitTest end Button3----- (null) 2020-04-05 14:35:28.523017+0800 hitTestDemo[1815:64004] -----hitTest star Button2----- 2020-04-05 14:35:28.542243+0800 hitTestDemo[1815:64004] -----pointInside Button2----- 0 2020-04-05 14:35:28.542305+0800 hitTestDemo[1815:64004] -----hitTest end Button2----- (null) 2020-04-05 14:35:28.542364+0800 hitTestDemo[1815:64004] -----hitTest star Button1----- 2020-04-05 14:35:28.542424+0800 hitTestDemo[1815:64004] -----pointInside Button1----- 0 2020-04-05 14:35:28.542466+0800 hitTestDemo[1815:64004] -----hitTest end Button1----- (null)

根据log可见,主视图view的hitTest中会遍历所有子视图,并执行子视图的hitTest方法,遍历顺序是subviews数组的倒序。

点击空白视图的时候,Button1、Button2、Button3 分别执行中hitTest,在hitTest中调用pointInside,均返回了0,说明当前碰触的屏幕坐标均不在三个视图中;hitTest返回的值都是null,说明当前操作,这三个视图均无法提供可以响应此次操作的视图。

操作二:此时点击红色按钮Button1,打印log如下:

2020-04-05 14:46:34.098658+0800 hitTestDemo[1899:72303] -----hitTest star Button3----- 2020-04-05 14:46:34.098857+0800 hitTestDemo[1899:72303] -----pointInside Button3----- 0 2020-04-05 14:46:34.098970+0800 hitTestDemo[1899:72303] -----hitTest end Button3----- (null) 2020-04-05 14:46:34.099065+0800 hitTestDemo[1899:72303] -----hitTest star Button2----- 2020-04-05 14:46:34.099160+0800 hitTestDemo[1899:72303] -----pointInside Button2----- 0 2020-04-05 14:46:34.099247+0800 hitTestDemo[1899:72303] -----hitTest end Button2----- (null) 2020-04-05 14:46:34.099315+0800 hitTestDemo[1899:72303] -----hitTest star Button1----- 2020-04-05 14:46:34.099393+0800 hitTestDemo[1899:72303] -----pointInside Button1----- 1 2020-04-05 14:46:34.099888+0800 hitTestDemo[1899:72303] -----hitTest end Button1----- <Button1: 0x7fee0ea07c00; baseClass = UIButton; frame = (100 100; 50 50); opaque = NO; layer = <CALayer: 0x600000fad6a0>>  //执行第二遍 2020-04-05 14:46:34.100059+0800 hitTestDemo[1899:72303] -----hitTest star Button3----- 2020-04-05 14:46:34.100147+0800 hitTestDemo[1899:72303] -----pointInside Button3----- 0 2020-04-05 14:46:34.100229+0800 hitTestDemo[1899:72303] -----hitTest end Button3----- (null) 2020-04-05 14:46:34.100310+0800 hitTestDemo[1899:72303] -----hitTest star Button2----- 2020-04-05 14:46:34.100397+0800 hitTestDemo[1899:72303] -----pointInside Button2----- 0 2020-04-05 14:46:34.100467+0800 hitTestDemo[1899:72303] -----hitTest end Button2----- (null) 2020-04-05 14:46:34.101958+0800 hitTestDemo[1899:72303] -----hitTest star Button1----- 2020-04-05 14:46:34.102017+0800 hitTestDemo[1899:72303] -----pointInside Button1----- 1 2020-04-05 14:46:34.102108+0800 hitTestDemo[1899:72303] -----hitTest end Button1----- <Button1: 0x7fee0ea07c00; baseClass = UIButton; frame = (100 100; 50 50); opaque = NO; layer = <CALayer: 0x600000fad6a0>>

点击Button1视图的时候,仍然是从Button3进行检测,直到检测到Button1时,pointInside返回的值为1,说明当前碰触的屏幕坐标在Button1视图中;Button1的hitTest返回的值是Button1实例,说明当前操作可以被Button1实例响应

实验二、Button1添加到主视图上,Button2和Button3平行添加到Button1上,Button2和Button3是Button1的子视图

    Button1 *btn1 = [[Button1 alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];     [btn1 setTitle:@"btn1" forState:UIControlStateNormal];     btn1.userInteractionEnabled = false;     btn1.backgroundColor = [UIColor redColor];      Button2 *btn2 = [[Button2 alloc]initWithFrame:CGRectMake(30, 30, 50, 50)];     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];     btn2.backgroundColor = [UIColor yellowColor];      Button3 *btn3 = [[Button3 alloc]initWithFrame:CGRectMake(110, 30, 50, 50)];     [btn3 setTitle:@"btn3" forState:UIControlStateNormal];     btn3.backgroundColor = [UIColor blueColor];      [self.view addSubview:btn1];     [btn1 addSubview:btn2];     [btn1 addSubview:btn3];

iOS响应链那些事

操作一:此时点击空白处,打印log如下:

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » iOS响应链那些事求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们