2017-09-20 30 views
9

Trong iOS 11, hành vi của hoạt ảnh ẩn trong một UIStackView đã thay đổi, nhưng tôi không thể tìm thấy tài liệu này ở bất kỳ đâu.UIStackView Ẩn Xem Hoạt ảnh

iOS 10

iOS 10 animation

iOS 11

iOS 11 animation

Mã ở cả là thế này:

UIView.animate(withDuration: DiscoverHeaderView.animationDuration, 
         delay: 0.0, 
         usingSpringWithDamping: 0.9, 
         initialSpringVelocity: 1, 
         options: [], 
         animations: { 
          clear.isHidden = hideClear 
          useMyLocation.isHidden = hideLocation 
         }, 
         completion: nil) 

Làm cách nào để khôi phục hành vi trước đó trên iOS 11?

Trả lời

17

Chỉ gặp vấn đề tương tự. Khắc phục được thêm "stackView.layoutIfNeeded()" bên trong khối hoạt ảnh. Trường hợp stackView là vùng chứa của các mục bạn muốn ẩn.

UIView.animate(withDuration: DiscoverHeaderView.animationDuration, 
        delay: 0.0, 
        usingSpringWithDamping: 0.9, 
        initialSpringVelocity: 1, 
        options: [], 
        animations: { 
         clear.isHidden = hideClear 
         useMyLocation.isHidden = hideLocation 
         stackView.layoutIfNeeded() 
        }, 
        completion: nil) 

Không chắc chắn tại sao điều này đột nhiên là vấn đề trong iOS 11 nhưng công bằng nó luôn là phương pháp được đề xuất.

+0

Bạn là người anh hùng: D –

+0

Tên phù hợp cũng 'Springham' –

+0

Trong iOS <= 10 có lỗi trong đó đặt thuộc tính 'ẩn' của' khung nhìn 'của' UIStackView' trong khối hoạt ảnh đã bị bỏ qua trong một số trường hợp, vì vậy cách tốt nhất là thay đổi nó bên ngoài nó, ngay trước hoạt ảnh. –

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