2010-11-10 28 views
8

Tôi muốn biết nếu có cách nào để hạn chế kích thước hoặc chuyển động của UIViews trong GestureRecognizers.Hạn chế chuyển động UIGestureRecognizer

Chắc chắn tôi có thể viết mã giới hạn của riêng mình nhưng tôi biết nếu chúng ta có thể đặt một số tài sản hoặc một cái gì đó để có một số giới hạn ràng buộc.

Ví dụ trong UIPanGestureRecognizer Tôi muốn hạn chế sự di chuyển của các điểm bổ sung vào PanGesture trong một CGRect đặc biệt, như vậy là có cách nào tôi có thể thiết rằng rect bounding vân vân cảm PanGesture nếu xem là đi ra khỏi khung viền của tôi nó sẽ không cho phép nó.

+0

bất kỳ ai? .......... – cocos2dbeginner

Trả lời

0

theo như tôi biết bạn phải tự viết.

cử chỉ nhấn cho phép bạn đặt số lượng vòi bạn đang phản hồi với bao nhiêu ngón tay, nhưng hầu hết trong số chúng không cung cấp nhiều người trợ giúp.

1

Tôi nghĩ rằng cách đơn giản nhất để thực hiện việc này là tạo ra một cái nhìn vô hình trong trực tràng đó và thêm cử chỉ vào nó. Ví dụ: Bạn muốn phát hiện chuyển động trong khung nhìn X bên trong trực tràng {a, b, c, d}. Tạo UIView Y ở chế độ chỉnh sửa {a, b, c, d}. Đặt màu nền là clearColor. Tạo trình nhận dạng cử chỉ và thêm nó vào chế độ xem Y. Trong chọn của cử chỉ làm một cái gì đó như thế này:

- (void) selector:(UIPanGestureRecognizer *) gesture 
{ 
    UIView *viewX = [self.view viewWithTag:kTagViewX]; 
    //now you know that the gesture took place and you have access to your view 
} 

Nếu bạn cần phải thay đổi rect mà bạn muốn các cử chỉ được hoạt động, chỉ di chuyển xem Y và thì đấy!

EDIT:

Bạn cũng có thể sử dụng các đại biểu UIGestureRecognizer và trở về TRUE hoặc FALSE trong phương pháp này:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; 

tùy thuộc vào vị trí của lập luận rằng cảm ứng. Trên thực tế đây là cách Apple đề xuất trong một trong các video phiên WWDC của họ. Và nó tốt hơn vì bạn không cần phải thêm một khung nhìn khác và lấp đầy bộ nhớ.

Các vấn đề liên quan