簡體   English   中英

使用xib將tapGestureRecognizer添加到自定義UIView

[英]Adding a tapGestureRecognizer to a Custom UIView with xib

背景:我有一系列問題,這些問題是設置一堆uiview並將其布置在屏幕上的基礎。 每個uiview都有一個標題和一個imageview。 我想向imageview添加輕擊手勢識別器,並讓uiview作為手勢委托。

問題:無法獲取uiview拾取的手勢。

到目前為止,我已經嘗試過的操作:如果我使用帶框架的init在代碼中初始化視圖,而不是通過將主視圖控件作為所有者通過主捆綁加載xib,則無需修改手勢代碼即可工作。 因此,我認為問題必須在於如何以及何時添加手勢識別器。 目前,我正在使用一種設置方法,該方法會加載問題名稱,然后將其添加到其中。 從筆尖醒着添加它不起作用。

這是加載每個uiview的循環代碼

NSArray* bundle = [[NSBundle mainBundle] loadNibNamed:@"QnA" owner:self options:nil];

QuestionAnswer *qa;
for (id object in bundle) {
    if ([object isKindOfClass:[QuestionAnswer class]])
        qa = (QuestionAnswer *)object;
    }

CGRect f = qa.frame;
f.origin.x = x;
f.origin.y = y;
qa.frame = f;
[self.view addSubview: qa];
[qa setup:[questions objectAtIndex:i ]];

這是QuestionAnswer類中的“設置”方法

-(void)setup:(NSString *)label
{
    self.afl.text = label;
    UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
    tgr.delegate = self;
    [self addGestureRecognizer:tgr];

}

QuestionAnswer實現UIGestureRecognizerDelegate。 我在imageTapped的第一行有一個斷點,但從未到達那里。 我也嘗試過將手勢識別器直接應用於imageview無濟於事。

viewcontroller在splitview控制器中,當我在代碼中初始化視圖時,不要認為與識別器的工作相關。 :/

在viewDidLoad方法中添加手勢識別器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM