2016-04-30 22 views
6

Tôi có xem sView bên trong ViewController của mình. Chiều cao của nó có ràng buộc - tôi đã tạo IBOutlet cho ràng buộc này - sViewHeightConstraint. Tôi muốn giảm chiều cao của sView với hoạt ảnh.Chiều cao xem ảnh động với Swift

Tôi tạo ra chức năng

UIView.animateWithDuration(5.5, animations: { 
       self.sViewHeightConstraint.constant = 50 
      }) 

Chiều cao view đang thay đổi nhưng tôi không thấy bất kỳ hình ảnh động. Tôi đang làm gì sai?

Trả lời

27

sử dụng layoutIfNeeded()

view.layoutIfNeeded() // force any pending operations to finish 

UIView.animateWithDuration(0.2, animations: {() -> Void in 
    self.sViewHeightConstraint.constant = 50 
    self.view.layoutIfNeeded() 
}) 

nhanh chóng 3

view.layoutIfNeeded() 
sViewHeightConstraint.constant = 50 

UIView.animate(withDuration: 1.0, animations: { 
    self.view.layoutIfNeeded() 
}) 
+0

cảm ơn bạn! bạn có thể giải thích - mã này có nghĩa là gì? – moonvader

+0

@moonvader 'layoutIfNeeded' trên chế độ xem buộc bất kỳ hoạt động đang chờ xử lý nào kết thúc và sau đó trong khối hoạt ảnh sẽ nắm bắt các thay đổi của khung. –

+0

để biết thêm thông tin. kiểm tra http://stackoverflow.com/questions/1182945/how-is-layoutifneeded-used –

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