Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何创建UIImageView“;“可刷卡”;并检测它的方向';谁偷了?_Ios_Swift_Uiimageview - Fatal编程技术网

Ios 如何创建UIImageView“;“可刷卡”;并检测它的方向';谁偷了?

Ios 如何创建UIImageView“;“可刷卡”;并检测它的方向';谁偷了?,ios,swift,uiimageview,Ios,Swift,Uiimageview,我有一个UIImageView,希望用户在屏幕上滑动。我想检测用户是否向上、向下、向右或向左滑动,以及println“向上”、“向下”、“向左”或“向右”。有没有办法使其可交换,并检测它的刷卡方式 注意:别忘了setUserInteractionEnabledTRUE。因为默认情况下,UIImageView的setUserInteractionEnabled为FALSE 您需要在UIImageview中使用 您可以使用以下代码添加到UIImageview: override func view

我有一个
UIImageView
,希望用户在屏幕上滑动。我想检测用户是否向上、向下、向右或向左滑动,以及
println
“向上”、“向下”、“向左”或“向右”。有没有办法使其可交换,并检测它的刷卡方式

注意:别忘了
setUserInteractionEnabled
TRUE。因为默认情况下,
UIImageView
setUserInteractionEnabled
FALSE

您需要在
UIImageview
中使用

您可以使用以下代码添加到
UIImageview

override func viewDidLoad() {
    super.viewDidLoad()

    var RightSwipe = UISwipeGestureRecognizer(target: self, action: "SwopeMethodRespond:")
    RightSwipe.direction = UISwipeGestureRecognizerDirection.Right
    self.imgview.addGestureRecognizer(RightSwipe)

    var LeftSwipe = UISwipeGestureRecognizer(target: self, action: "SwopeMethodRespond:")
    LeftSwipe.direction = UISwipeGestureRecognizerDirection.Left
    self.imgview.addGestureRecognizer(LeftSwipe)

    var UpSwip = UISwipeGestureRecognizer(target: self, action: "SwopeMethodRespond:")
    UpSwip.direction = UISwipeGestureRecognizerDirection.Up
    self.imgview.addGestureRecognizer(UpSwip)

    var DownSwipe = UISwipeGestureRecognizer(target: self, action: "SwopeMethodRespond:")
    DownSwipe.direction = UISwipeGestureRecognizerDirection.Down
    self.imgview.addGestureRecognizer(DownSwipe)
}



func SwopeMethodRespond(gesture: UIGestureRecognizer) {

    if let swipeGesture = gesture as? UISwipeGestureRecognizer {

        switch swipeGesture.direction {
        case UISwipeGestureRecognizerDirection.Right:
            println("Right Fire")
        case UISwipeGestureRecognizerDirection.Left:
            println("Left Fire")
        case UISwipeGestureRecognizerDirection.Up:
            println("Up Fire")
        case UISwipeGestureRecognizerDirection.Down:
            println("Down Fire")
        default:
            break
        }
    }
}

在目标C中,你可以这样做

 UISwipeGestureRecognizer *Swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)];
  Swipe.direction = (UISwipeGestureRecognizerDirectionLeft | 
                     UISwipeGestureRecognizerDirectionRight |
                     UISwipeGestureRecognizerDirectionDown | 
                     UISwipeGestureRecognizerDirectionUp);

- (void) SwipeRecognizer:(UISwipeGestureRecognizer *)sender {
  if ( sender.direction | UISwipeGestureRecognizerDirectionLeft )
    NSLog(@" *** SWIPE LEFT ***");
  if ( sender.direction | UISwipeGestureRecognizerDirectionRight )
    NSLog(@" *** SWIPE RIGHT ***");
  if ( sender.direction | UISwipeGestureRecognizerDirectionDown )
    NSLog(@" *** SWIPE DOWN ***");
  if ( sender.direction | UISwipeGestureRecognizerDirectionUp )
    NSLog(@" *** SWIPE UP ***");
}
或者更简单(更多代码)的方式


它可以工作,但是当我把它添加到我的项目中时,UIImageView就不能再被刷了。你需要设置用户交互启用我的朋友。UIImageView默认为FALSE只有当我刷得非常快,如果我刷得很慢或正常,它才工作。这是苹果提供的检测API刷苹果没有识别出你的慢动作刷手势。快速移动手指,也可以学习Pangestor,但是使用PAN你需要计算点作为PAR检测刷卡检查:
 UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)];
    swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
    [self.view addGestureRecognizer:swipeLeft];

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self  action:@selector(didSwipe:)];
    swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
    [self.view addGestureRecognizer:swipeRight];

    UISwipeGestureRecognizer *swipeUp = [[UISwipeGestureRecognizer alloc]  initWithTarget:self action:@selector(didSwipe:)];
    swipeUp.direction = UISwipeGestureRecognizerDirectionUp;
    [self.view addGestureRecognizer:swipeUp];

    UISwipeGestureRecognizer *swipeDown = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)];
    swipeDown.direction = UISwipeGestureRecognizerDirectionDown;
    [self.view addGestureRecognizer:swipeDown];

    // ...

- (void)didSwipe:(UISwipeGestureRecognizer*)swipe{

    if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {
        NSLog(@"Swipe Left");
    } else if (swipe.direction == UISwipeGestureRecognizerDirectionRight) {
        NSLog(@"Swipe Right");
    } else if (swipe.direction == UISwipeGestureRecognizerDirectionUp) {
        NSLog(@"Swipe Up");
    } else if (swipe.direction == UISwipeGestureRecognizerDirectionDown) {
        NSLog(@"Swipe Down");
    }
}