子视图不随父视图一起执行动画
2017-07-08 本文已影响54人
申申申申申
在 view 内部初始化 cyan颜色的 subview,其 bottom 和 父视图的 bottom 一致
对应的 vc 中 进行动画处理
weak var weakself = self
UIView.animate(withDuration: 0.5, animations: {
weakself?.search_gist_view.frame = CGRect.init(x: 0, y: 40, width: SCREEN_W, height: button.isSelected ? 144 : 44)
})
此时动画效果如下:

子视图不随父视图一起动画
虽然可设置 父视图.layer.masksToBounds = true
设置后 弹出时候的 动画正常,收回的时候,子视图依旧先消失,然后父视图在进行动画
解决: 使用可以设置 UIViewAnimationOptions 的动画开启方式
// public static var layoutSubviews: UIViewAnimationOptions { get } 动画过程中使子视图和父视图一致
weak var weakself = self
UIView.animate(withDuration: 0.5, delay: 0, options: .layoutSubviews, animations: {
weakself?.search_gist_view.frame = CGRect.init(x: 0, y: 40, width: SCREEN_W, height: button.isSelected ? 144 : 44)
}, completion: { (is_finished) in
})
效果:
