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

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

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

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

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

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

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

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

在.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]

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

運行結果:

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];
}

結果:

2015-08-11 14:13:16.847 XIB

注意

[2064:382058] -[ZHDemoView click:]

一切正常。

總結:

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

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

相關文章

  • UIPageViewController實現的左右滑動界面

    UIPageViewController實現的左右滑動界面

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

    iOS AFNetworking中cookie重定向代碼

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

    iOS中大尺寸圖片的旋轉與縮放實例詳解

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

    iOS中FMDB數據庫之增刪改查使用實例

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

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

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

    IOS UI學習教程之設置UITextField各種屬性

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

    百度云推送圖文教程IOS

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

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

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

    iOS UITableView 拖動排序實現代碼

    這篇文章主要為大家詳細介紹了iOS UITableView 拖動排序實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS中block的定義與使用

    iOS中block的定義與使用

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

最新評論

六盘水市| 霍山县| 修文县| 凉城县| 北宁市| 襄垣县| 伊通| 堆龙德庆县| 汤阴县| 宾川县| 绿春县| 黑水县| 宜宾县| 崇仁县| 南陵县| 永清县| 乌兰县| 湛江市| 宜章县| 七台河市| 宁城县| 姚安县| 界首市| 万宁市| 铁岭市| 景德镇市| 宁蒗| 彰化县| 沐川县| 昌图县| 蕉岭县| 右玉县| 金堂县| 吉水县| 民乐县| 庆安县| 井研县| 博湖县| 德惠市| 徐州市| 上饶市|