環境: Swift3
あるViewのSubviewのレイアウトをAuto Layoutで行った時にアニメーションしながら配置された。
この時のアニメーションは不要なので無効にする。
やり方はSubviewの配置が行われるlayoutSubviews
メソッドをオーバーライドして以下のようにアニメーションしないようにする。
方法1
UIView クラスメソッドのperformWithoutAnimation:
のブロック内で実行させる。
override func layoutSubviews() { UIView.performWithoutAnimation { super.layoutSubviews() } }
方法2
CATransaction.setDisableActions(true)
を実行後にlayoutSubviews
を実行させる。
override func layoutSubviews() { CATransaction.begin() CATransaction.setDisableActions(true) super.layoutSubviews() CATransaction.commit() }