最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

另外,測試用的XIB長這樣:

在根控制器添加一個這樣的View,運行并點擊

結(jié)果是

2015-08-11 13:44:44.988 XIB

注意

[1797:362096] -[ZHDemoView click]

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

運行結(jié)果:

2015-08-11 14:02:12.747 XIB

注意

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

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

回到這張圖

我們可以看到Objects欄下方有手勢識別器和DemoView兩個對象,那么是否有可能是因為XIB加載的對象錯誤呢?

因為之前提供的類方法中我們使用的是lastObject方法,這次我們使用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加載出來的是一個對象數(shù)組,通常情況下,我們只需要用到一個對象,此時用firstObject或者lastObject皆可。但是當(dāng)你要使用手勢識別器時,別弄錯你取出的對象。建議不要在XIB中直接添加手勢識別器,通過代碼手動創(chuàng)建更穩(wěn)妥和易于維護(hù)。

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

相關(guān)文章

  • UIPageViewController實現(xiàn)的左右滑動界面

    UIPageViewController實現(xiàn)的左右滑動界面

    這篇文章主要為大家詳細(xì)介紹了UIPageViewController實現(xiàn)的左右滑動界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • iOS AFNetworking中cookie重定向代碼

    iOS AFNetworking中cookie重定向代碼

    這篇文章主要介紹了iOS AFNetworking中cookie重定向代碼的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • iOS中大尺寸圖片的旋轉(zhuǎn)與縮放實例詳解

    iOS中大尺寸圖片的旋轉(zhuǎn)與縮放實例詳解

    圖片縮小旋轉(zhuǎn)是我們在開發(fā)中經(jīng)常會遇到的一個功能,下面這篇文章主要給大家介紹了關(guān)于iOS中大尺寸圖片的旋轉(zhuǎn)與縮放的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧
    2018-09-09
  • iOS中FMDB數(shù)據(jù)庫之增刪改查使用實例

    iOS中FMDB數(shù)據(jù)庫之增刪改查使用實例

    本篇文章主要介紹了iOS中FMDB數(shù)據(jù)庫之增刪改查使用實例,F(xiàn)MDB是一個輕量級的數(shù)據(jù)庫,用于將網(wǎng)絡(luò)資源存儲在本地。
    2017-05-05
  • 詳解iOS App中UITableView的創(chuàng)建與內(nèi)容刷新

    詳解iOS App中UITableView的創(chuàng)建與內(nèi)容刷新

    這篇文章主要介紹了iOS App中UITableView的創(chuàng)建與內(nèi)容刷新,講解了UITableView一些基本的樣式與cell的設(shè)置及刷新,需要的朋友可以參考下
    2016-04-04
  • IOS UI學(xué)習(xí)教程之設(shè)置UITextField各種屬性

    IOS UI學(xué)習(xí)教程之設(shè)置UITextField各種屬性

    這篇文章主要為大家詳細(xì)介紹了IOS UI學(xué)習(xí)教程之設(shè)置UITextField各種屬性,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 百度云推送圖文教程IOS

    百度云推送圖文教程IOS

    這篇文章主要介紹了百度云推送圖文教程IOS 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 兩種iOS調(diào)用系統(tǒng)發(fā)短信的方法

    兩種iOS調(diào)用系統(tǒng)發(fā)短信的方法

    iOS調(diào)用系統(tǒng)的發(fā)短信功能可以分為兩種:1,程序外調(diào)用系統(tǒng)發(fā)短信。2,程序內(nèi)調(diào)用系統(tǒng)發(fā)短信。第二種的好處是用戶發(fā)短信之后還可以回到app。這對app來說非常重要。
    2016-07-07
  • iOS UITableView 拖動排序?qū)崿F(xiàn)代碼

    iOS UITableView 拖動排序?qū)崿F(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了iOS UITableView 拖動排序?qū)崿F(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS中block的定義與使用

    iOS中block的定義與使用

    蘋果官方文檔聲明,block是objc對象。下面這篇文章主要給大家介紹了關(guān)于iOS中block的定義與使用,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論

阳高县| 远安县| 青阳县| 台安县| 佛冈县| 吉隆县| 府谷县| 磴口县| 新巴尔虎左旗| 黄冈市| 咸宁市| 新余市| 莱西市| 武平县| 苏尼特右旗| 姚安县| 定边县| 清新县| 福建省| 清流县| 南投县| 大英县| 铜陵市| 大厂| 铁岭县| 舟曲县| 称多县| 井冈山市| 吉林省| 白朗县| 通化县| 西乡县| 恩施市| 上虞市| 小金县| 朝阳县| 栾川县| 元氏县| 南昌县| 潼南县| 山西省|