2011-10-14 28 views
9

Tôi có Chế độ xem với UIButton, UITextFieldUIImageView cho nền.Không thể chạm vào trong khi hoạt ảnh (Chặn hoạt ảnh)

trong viewDidLoad tôi thử animate UIImageView từ alpha = 0 đến alpha = 1 sử dụng khối. nó khá cơ bản, đây là mã:

[UIView animateWithDuration:1.5 animations:^(void){ 

    ((UIView*)[self.view viewWithTag:123]).alpha = 1; 
}completion:^(BOOL finished){ 
}]; 

đang hoạt động tốt. nhưng trong 1,5 giây hoạt ảnh đó, cảm ứng của tôi ở chế độ xem hiện tại dường như bị tắt. tôi không thể nhấp vào bất kỳ nút hoặc textFields nào cho đến khi kết thúc hoạt ảnh.

Cảm ơn trước

Trả lời

0

tôi đã kết thúc không làm điều này. Bạn không thể chạm vào một chế độ xem vẫn hoạt ảnh. đó là kết luận của tôi. Sẽ rất vui khi nghe một số suy nghĩ về điều này mặc dù.

29

Bạn nên sử dụng tùy chọn UIViewAnimationOptionAllowUserInteraction như trong ví dụ sau:

[UIView animateWithDuration:1.0 
         delay:0 
        options:UIViewAnimationOptionAllowUserInteraction 
       animations:^{ myView.alpha = 0.5; } 
       completion:NULL]; 
+0

tôi tin rằng không có gì sai với tôi mã cũng như của bạn. sự khác biệt duy nhất nó có sự chậm trễ và các tùy chọn. cố gắng mặc dù, không làm việc ... – HelmiB

+2

>> khác nhau duy nhất nó có sự chậm trễ và tùy chọn. - Hãy chắc chắn rằng bạn không đặt alpha thành 0. Sử dụng ít nhất 0,1 thay vì 0.0 'hoạt ảnh:^{myView.alpha = 0,1; } ' –

0

Sử dụng animateWithDuration:delay:options:animations:completion: phương pháp và thiết lập UIViewAnimationOptionAllowUserInteraction như tùy chọn

+0

đã cố gắng, không hoạt động. có vẻ như quan điểm của tôi sẽ không hoạt động trong khi hoạt ảnh ... – HelmiB

+0

bạn đang sử dụng trình nhận dạng cử chỉ? –

+0

Không, chỉ là chế độ xem bình thường ... – HelmiB

0

Dường như các nút hoạt ảnh nói chung khiến trạng thái nhấp chuột của họ khá rõ ràng. Các giải pháp tôi đã đưa ra cho điều này là để có các yếu tố animating chỉ là một UIView với tất cả các phong cách nút. Trước khi hoạt ảnh UIView tôi thêm nút thực vào chế độ xem phía trên UIView với nền rõ ràng đến vị trí tôi muốn tương tác của người dùng xảy ra. Chắc chắn thêm một bước phụ nhưng rất đáng tin cậy.

//create button and view 
UIButton *viewNotificationBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, ([UIScreen mainScreen].bounds.size.height -70), 320, 50)]; 
UIView *viewNotificationView = [[UIView alloc] initWithFrame:CGRectMake(0, ([UIScreen mainScreen].bounds.size.height), 320, 50)]; 

//add elements to screen 
[self.view addSubview:viewNotificationView]; 
[self.view insertSubview:viewNotificationBtn aboveSubview:viewNotificationView]; 


[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ 
    [viewNotificationView setFrame:CGRectMake(0, ([UIScreen mainScreen].bounds.size.height - 70), 320, 50)]; 
} completion:^(BOOL finished) { 
    [UIView animateWithDuration:0.5 delay:10.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ 
     viewNotificationView.alpha = 0; 
    } completion:^(BOOL finished) { 
     [viewNotificationView removeFromSuperview]; 
     [viewNotificationBtn removeFromSuperview]; 
    }]; 
}]; 
2

UIView userinteraction trong phim hoạt hình sử dụng .allowUserInteraction cho Swift 3 +, iOS 10

Thêm vào các hình ảnh động gọi UIViewAnimationOptions cờ .allowUserInteraction

UIView.animate(withDuration: 1.0, delay: 0.0, usingSpringWithDamping: 0.4, initialSpringVelocity: 0.0, options: [.curveEaseIn,.allowUserInteraction], animations: { 

      //your animation block 

      }, completion: { isAnimated in 
      //after animation is done 
    }) 
Các vấn đề liên quan