亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

加載帶有手勢(shì)識(shí)別器的XIB文件需注意哪些問題

 更新時(shí)間:2015年08月11日 16:49:41   投稿:mrr  
手勢(shì)識(shí)別在iOS上非常重要,手勢(shì)操作移動(dòng)設(shè)備的重要特征,極大的增加了移動(dòng)設(shè)備使用便捷性。通過本教程給大家介紹加載帶有手勢(shì)識(shí)別器的XIB文件需注意哪些問題,需要的朋友可以參考下

如果在你的應(yīng)用程序中需要檢測(cè)手勢(shì),比如點(diǎn)擊(tap)、二指撥動(dòng) (pinch)、拖移(pan)和旋轉(zhuǎn)(rotation),那么通過創(chuàng)建UIGestureRecognizer類來實(shí)現(xiàn)將十分簡(jiǎn)單。

接下來小編給大家分享加載帶有手勢(shì)識(shí)別器的XIB文件需主要的問題。

首先新建一個(gè)繼承自UIView的類,并創(chuàng)建相應(yīng)的XIB文件

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

提供一個(gè)類方法以供快速創(chuàng)建當(dāng)前類

在.m中實(shí)現(xiàn)類方法,通常從XIB中加載出來的是一個(gè)數(shù)組,所以用到了lastObject方法

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

另外,測(cè)試用的XIB長(zhǎng)這樣:

在根控制器添加一個(gè)這樣的View,運(yùn)行并點(diǎn)擊

結(jié)果是

2015-08-11 13:44:44.988 XIB

注意

[1797:362096] -[ZHDemoView click]

一切正常,接下來我們不在代碼中添加手勢(shì),直接在XIB中添加(之前添加手勢(shì)的代碼已清除):

運(yùn)行結(jié)果:

2015-08-11 14:02:12.747 XIB

注意

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

可以看到是消息發(fā)送錯(cuò)誤,UITapGestureRecognizer中沒有superview方法。

回到這張圖

我們可以看到Objects欄下方有手勢(shì)識(shí)別器和DemoView兩個(gè)對(duì)象,那么是否有可能是因?yàn)閄IB加載的對(duì)象錯(cuò)誤呢?

因?yàn)橹疤峁┑念惙椒ㄖ形覀兪褂玫氖莑astObject方法,這次我們使用firstObject試一試

更改類方法如下:

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

結(jié)果:

2015-08-11 14:13:16.847 XIB

注意

[2064:382058] -[ZHDemoView click:]

一切正常。

總結(jié):

從XIB加載出來的是一個(gè)對(duì)象數(shù)組,通常情況下,我們只需要用到一個(gè)對(duì)象,此時(shí)用firstObject或者lastObject皆可。但是當(dāng)你要使用手勢(shì)識(shí)別器時(shí),別弄錯(cuò)你取出的對(duì)象。建議不要在XIB中直接添加手勢(shì)識(shí)別器,通過代碼手動(dòng)創(chuàng)建更穩(wěn)妥和易于維護(hù)。

以上就是本文介紹加載帶有手勢(shì)識(shí)別器的XIB文件需注意的問題,希望能夠幫助到大家。

相關(guān)文章

  • iOS實(shí)現(xiàn)簡(jiǎn)單的二級(jí)菜單效果

    iOS實(shí)現(xiàn)簡(jiǎn)單的二級(jí)菜單效果

    這篇文章給大家主要介紹的是利用iOS如何實(shí)現(xiàn)簡(jiǎn)單的菜單效果,文中給出了詳細(xì)的示例代碼,而且實(shí)現(xiàn)的比較簡(jiǎn)單,適合新人學(xué)習(xí)使用。感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • iOS中的導(dǎo)航欄UINavigationBar與工具欄UIToolBar要點(diǎn)解析

    iOS中的導(dǎo)航欄UINavigationBar與工具欄UIToolBar要點(diǎn)解析

    UINavigation可以附著于導(dǎo)航控制器之中使用,也可以在controller中單獨(dú)使用,這里我們將來看iOS中的導(dǎo)航欄UINavigationBar與工具欄UIToolBar要點(diǎn)解析.
    2016-06-06
  • iOS推送之本地通知UILocalNotification

    iOS推送之本地通知UILocalNotification

    這篇文章主要為大家詳細(xì)介紹了iOS本地通知UILocalNotification,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS開發(fā)之微信聊天工具欄的封裝

    iOS開發(fā)之微信聊天工具欄的封裝

    這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)之微信聊天工具欄的封裝,針對(duì)聊天工具條進(jìn)行封裝,感興趣的小伙伴們可以參考一下
    2016-02-02
  • iOS程序性能優(yōu)化的技巧

    iOS程序性能優(yōu)化的技巧

    這篇文章主要介紹了一些優(yōu)化iOS程序性能的技巧,幫助大家更好的進(jìn)行ios開發(fā),感興趣的朋友可以了解下
    2020-09-09
  • iOS應(yīng)用程序之間的幾種跳轉(zhuǎn)情況詳解

    iOS應(yīng)用程序之間的幾種跳轉(zhuǎn)情況詳解

    這篇文章給大家詳細(xì)介紹了iOS應(yīng)用程序之間跳轉(zhuǎn)的幾種情況,包括跳轉(zhuǎn)到另一個(gè)程序的主界面、跳轉(zhuǎn)到另一個(gè)程序的指定界面以及如何從目標(biāo)程序的非主頁(yè)界面回到當(dāng)前(跳轉(zhuǎn)前)程序呢?有需要的朋友們可以下面來一起看看。
    2016-09-09
  • iOS實(shí)現(xiàn)攝像頭實(shí)時(shí)采集圖像

    iOS實(shí)現(xiàn)攝像頭實(shí)時(shí)采集圖像

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)攝像頭實(shí)時(shí)采集圖像,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • NSMutable?對(duì)象的坑解決分析

    NSMutable?對(duì)象的坑解決分析

    這篇文章主要為大家介紹了NSMutable?對(duì)象的坑解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • iOS中常見的視圖和圖片處理示例詳解

    iOS中常見的視圖和圖片處理示例詳解

    在日常ios開發(fā)中經(jīng)常會(huì)遇到視圖和圖片的處理,下面這篇文章主要給大家總結(jié)介紹了關(guān)于iOS中常見的視圖和圖片處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)和工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下。
    2017-10-10
  • ios8 UITableView設(shè)置 setSeparatorInset UIEdgeInsetsZero不起作用的解決辦法(去掉15px空白間距)

    ios8 UITableView設(shè)置 setSeparatorInset UIEdgeInsetsZero不起作用的解決

    這篇文章主要介紹了ios8 UITableView設(shè)置 setSeparatorInset UIEdgeInsetsZero不起作用的解決辦法(去掉15px空白間距)的相關(guān)資料,需要的朋友可以參考下
    2016-02-02

最新評(píng)論