XIB文件加載手勢注意

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

#import <UIKit/UIKit.h>

@interface DemoView : UIView

+ (instancetype)demoView;

@end

提供一個類方法以供快速創建當前類

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

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

接下來直接在XIB中添加手勢
運行結果:

-[UITapGestureRecognizer bounds]: unrecognized selector sent to instance

可以看到是消息發送錯誤,UITapGestureRecognizer中沒有bounds方法。
打印nibArray

(
    "<DemoView: 0x7d338fb0; frame = (0 0; 320 223); autoresize = W+H; layer = <CALayer: 0x7d3390c0>>",
    "<UITapGestureRecognizer: 0x7d3383b0; state = Possible; view = <UIView 0x7d354490>>"
)

更改lastObject為firstObject
運行OK!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容