[英]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
您發布的代碼永遠不會將headerPlusIcon添加到視圖層次結構中。 您在對Adam的答復中說,它可以正常工作,但是我不知道如何不將headerPlusIcon添加到視圖控制器的內容視圖層次結構中。
請注意,從外部混入視圖控制器的視圖層次結構不是一個好的面向對象設計。
最好讓視圖控制器向另一個對象請求一個視圖(可能通過協議),然后再添加該視圖本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.