簡體   English   中英

不同類別的手勢識別器?

[英]Gesture recogniser in different class?

我想知道這是否可能。 具有一個將新的imageViews添加到主視圖並為其分配手勢識別器的類。

因此,在我的視圖構建器類中,我具有以下內容:

UIImageView *headerPlusIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"plusIcon.png"]];
headerPlusIcon.frame = CGRectMake(header.frame.size.width - 2.5*(logoSize - 8), yPosition*1.6, logoSize*0.9, logoSize*0.9);
headerPlusIcon.userInteractionEnabled = YES;

UIGestureRecognizer *headerTapGesture = [[UIGestureRecognizer alloc] initWithTarget:mainView action:@selector(testTapGesture:)];
[headerPlusIcon addGestureRecognizer:headerTapGesture];

點擊手勢方法如下所示:

-(void)testTapGesture:(UITapGestureRecognizer *)gesture
{
    dispatch_async(dispatch_get_main_queue(), ^{
        mainView.backgroundColor = [UIColor redColor];
    });
}

mainView通過構造函數傳遞給此類,並且僅僅是主視圖。

這樣稱呼:

mainViewbuilder = [[MainViewBuilder alloc] initWithBaseView:self.view];
[mainViewbuilder buildHeader];

不幸的是,點擊手勢方法從未被調用過……如何正確完成呢? 謝謝!

嘗試使用UITapGestureRecognizer

UITapGestureRecognizer上的Apple文檔

您發布的代碼永遠不會將headerPlusIcon添加到視圖層次結構中。 您在對Adam的答復中說,它可以正常工作,但是我不知道如何不將headerPlusIcon添加到視圖控制器的內容視圖層次結構中。

請注意,從外部混入視圖控制器的視圖層次結構不是一個好的面向對象設計。

最好讓視圖控制器向另一個對象請求一個視圖(可能通過協議),然后再添加該視圖本身。

暫無
暫無

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

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