2011-01-09 32 views
10

Tôi muốn thêm cử chỉ vào ứng dụng của mình để khi người dùng vuốt theo chiều dọc, nó sẽ kích hoạt phương pháp để làm điều gì đó. Vuốt có thể lên hoặc xuống. Tôi đã không bao giờ làm bất cứ điều gì với cử chỉ vì vậy đây là lần đầu tiên tôi sử dụng một cử chỉ khác với những gì được bao gồm trong một UITableView để xóa các hàng.Làm cách nào để thêm cử chỉ vuốt dọc vào ứng dụng iPhone cho tất cả các màn hình?

Vấn đề khác là hầu hết màn hình của tôi là UITableViews nên người dùng có thể chỉ cần cuộn UITableView. Vì vậy, tôi tự hỏi nếu tôi có thể sử dụng một swipe hai ngón tay (dọc) để phát hiện các cử chỉ để chạy mã so với một swipe ngón tay duy nhất để di chuyển UITableView?

Cảm ơn bạn trước.

Neal

Trả lời

20

này đi trong ApplicationDidLaunch:

UISwipeGestureRecognizer *swipeGesture = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipedScreen:)] autorelease]; 
swipeGesture.numberOfTouchesRequired = 2; 
    swipeGesture.direction = (UISwipeGestureRecognizerDirectionUp|UISwipeGestureRecognizerDirectionDown); 

[window addGestureRecognizer:swipeGesture]; 

sau đó thực hiện

- (void) swipedScreen:(UISwipeGestureRecognizer*)swipeGesture { 
    // do stuff 
} 

Sử dụng các tài liệu cho UIGestureRecognizerUISwipeGestureRecognizer.

Ngoài ra nếu bạn muốn phát hiện hướng vuốt, bạn sẽ phải thiết lập hai trình nhận dạng cử chỉ riêng biệt. Bạn không thể nhận được hướng của một swipe từ một cử chỉ swipe cử chỉ, chỉ có hướng nó được đăng ký để nhận ra.

+0

Tìm thấy một vấn đề - khi tôi xoay điện thoại của tôi swipe "thẳng đứng" cử chỉ không tính đến định hướng. Vì vậy, nếu bạn tạo một swipe (hướng xuống/xuống) dọc và xoay thiết bị để cảnh quan, bạn phải vuốt theo chiều ngang ngay bây giờ. Bất kỳ đề xuất nào để giải quyết vấn đề này? – Neal

+0

chắc chắn thử xóa trình nhận dạng cử chỉ và readding chúng sau khi xoay. Bạn có thể sử dụng phương thức UIView 'gestureRecognizers' để lặp qua chúng và loại bỏ chúng. tức là 'cho (UIGestureRecognizer * recognizer trong self.view)' – mackross

+0

@mackross tôi muốn trao đổi nhiều xem lên và xuống để làm thế nào có thể thực hiện nói tôi plz .... ??? – Raju

0

Trong nhanh chóng 4.0, mà đi trên didFinishLaunchingWithOptions phương pháp của appdelegate:

let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(self.swipedScreen(swipeGesture:))) 
swipeGesture.numberOfTouchesRequired = 2 
swipeGesture.direction = [UISwipeGestureRecognizerDirection.up, UISwipeGestureRecognizerDirection.down] 
window?.addGestureRecognizer(swipeGesture) 

Và hành động:

@objc func swipedScreen(swipeGesture: UISwipeGestureRecognizer){ 
    Swift.print("hy") 
} 
Các vấn đề liên quan