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");
}
}