我有一个具有普通视图的View Controller。在该视图中,我有4个子视图。我需要每个人对UISwipeGestureRecognizer
做出反应。我将视图连接到Interface Builder中的UISwipeGestureRecognizer
,并将UISwipeGestureRecognizer
挂钩到IBAction
。一切都很好;他们都对UISwipeGestureRecognizer
作出反应。
但是,我需要采取不同的行动,具体取决于所谓的IBAction
。我该怎么办?这是IBAction
代码:
- (IBAction)swipe:(UISwipeGestureRecognizer *)sender
{
switch (view)
{
case view1:
//do something
break;
case view2:
//do something
break;
case view3:
//do something
break;
default:
//do something
break;
}
}
我该如何处理?
答案 0 :(得分:1)
我会为每个视图分配一个标签。这样,你仍然可以使用你的switch语句来区分它们,但不必保持对每个视图的引用。 E.x:
- (IBAction)tapSignature:(UISwipeGestureRecognizer *)sender
{
NSLog(@"swiped");
switch (sender.view.tag)
{
case 1:
NSLog(@"1");
break;
case 2:
NSLog(@"2");
break;
case 3:
NSLog(@"3");
break;
default:
NSLog(@"4");
break;
}
}
答案 1 :(得分:0)
- (IBAction)swipe:(UISwipeGestureRecognizer *)sender
{
if (sender.view == view1) {
//do something
}
if (sender.view == view2) {
//do something
}
if (sender.view == view3) {
//do something
}
}
不要简单地复杂化。此外,如果你想将同一个控制器与另一个nib一起使用,那么使用标签将迫使你在另一个笔尖中定义相同的标签,这是糟糕的设计。