加载带有手势识别器的XIB文件需注意哪些问题

2016-02-19 11:21 21 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享加载带有手势识别器的XIB文件需注意哪些问题,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

如果在你的应用程序中需要检测手势,比如点击(tap)、二指拨动 (pinch)、拖移(pan)和旋转(rotation),那么通过创建UIGestureRecognizer类来实现将十分简单。

接下来图老师小编给大家分享加载带有手势识别器的XIB文件需主要的问题。

首先新建一个继承自UIView的类,并创建相应的XIB文件

#import UIKit/UIKit.h@interface ZHDemoView : UIView+ (instancetype)demoView;@end

提供一个类方法以供快速创建当前类

在.m中实现类方法,通常从XIB中加载出来的是一个数组,所以用到了lastObject方法

+ (instancetype)demoView{ NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"ZHDemoView" owner:nil options:nil]; return [nibArray lastObject];}  在awakeFromNib中添加相应的手势- (void)awakeFromNib{ UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click)]; [self addGestureRecognizer:tap];}- (void)click{ NSLog(@"%s", __func__);}

另外,测试用的XIB长这样:

在根控制器添加一个这样的View,运行并点击

结果是

2015-08-11 13:44:44.988 XIB

注意

[1797:362096] -[ZHDemoView click]

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

一切正常,接下来我们不在代码中添加手势,直接在XIB中添加(之前添加手势的代码已清除):

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

运行结果:

2015-08-11 14:02:12.747 XIB

注意

[1962:374487] -[UITapGestureRecognizer superview]: unrecognized selector sent to instance 0x7fe47af49c60

可以看到是消息发送错误,UITapGestureRecognizer中没有superview方法。

回到这张图

我们可以看到Objects栏下方有手势识别器和DemoView两个对象,那么是否有可能是因为XIB加载的对象错误呢?

因为之前提供的类方法中我们使用的是lastObject方法,这次我们使用firstObject试一试

更改类方法如下:

+ (instancetype)demoView{ NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"ZHDemoView" owner:nil options:nil]; return [nibArray firstObject];}

结果:

2015-08-11 14:13:16.847 XIB

注意

[2064:382058] -[ZHDemoView click:]

一切正常。

总结:

从XIB加载出来的是一个对象数组,通常情况下,我们只需要用到一个对象,此时用firstObject或者lastObject皆可。但是当你要使用手势识别器时,别弄错你取出的对象。建议不要在XIB中直接添加手势识别器,通过代码手动创建更稳妥和易于维护。

以上就是本文介绍加载带有手势识别器的XIB文件需注意的问题,希望能够帮助到大家。

来源:http://www.tulaoshi.com/n/20160219/1597169.html

延伸阅读
标签: 脱毛
脱毛3大细节问题需注意 爱美之心人皆有知,美女们既要秀美腿又要露身材。但是一些平时不便暴露的地方,却让人尴尬不已现在,市面上脱毛的方式有很多,所以女生们要根据自己的需求来选择脱毛方式,在脱毛时要注意哪些细节问题,才能够让你拥有细致肌肤呢。 美容院激光脱毛(卫生环境要慎选) 如果你更倾向于美容院的脱毛技...
标签: 怀孕 孕早期
九诀窍把流产“拒之门外” 找出造成习惯性流产的原因,根据原因加以防止和治疗才能有效的控制其发生: 1、发生流产后半年以内要避孕,待半年以后再次怀孕,可减少流产的发生。 2、要做遗传学检查,夫妇双方同时接受染色体的检查。 3、做血型鉴定包括rh血型系统。 4、有子宫内口松弛的可做内口缝扎术。 5、针对黄体功...
孙俪自曝怀孕怪癖 盘点准妈妈孕期8大怪癖 孙俪自曝 怀孕 怪癖:疯狂吃水果 12月23日,孙俪更新微博自曝怀孕时的怪癖,她写道“我在怀孕时的图老师怪癖,就是疯狂爱吃水果,怀等等时爱吃葡萄,每天还是两大碗,一碗青葡萄一碗紫葡萄,怀小花妹妹时爱吃石榴,看到石榴我就高兴。” 孙俪...
流产需注意哪些事项? 女性朋友们都知道流产对身体的伤害是很大的,因此流产需要注意很多事项,那么流产都要注意哪些事项呢?流产前要注意哪些事项呢?流产后注意哪些事项? 流产前(人流)注意事项 1、在做无痛人流手术前,必须做相应的妇科检查及尿妊娠实验、B超检查,以确定是否宫内妊娠、妊娠的大小,如实向医生叙述既往的孕产史;...
标签: 孕期
孕妇睡眠需注意哪些?    怀孕以后,为了给胎儿创造一个良好的成长环境,孕妈妈们一定要保证充足的睡眠时间。俗语说:睡觉的孩子容易长大。这句话也是可以用在胎儿身上的。在妈妈腹中的胎儿也是会睡觉的哦,如果妈妈的睡眠质量高,宝宝的睡眠也会好。那么下面一起看看准妈妈的睡眠需要注意哪些地方吧。 ...

经验教程

725

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部