最近、私はCGAffineTransform
とCATransform3D
のビューとレイヤーで作業しています。レイヤーレベル、特にビューレベルでトランスフォーメーションを適用する場合、オートレイアウトは関連ビューのフレームを更新しません。たとえば、レイアウト|H:[ViewA]-[ViewB]|
に従うことを検討してください。ちょうどViewA
で変換を適用する場合。CGAffineTransformは自動レイアウトに影響しません
//We can either
ViewA.transform = CGAffineTransformMakeScale(1.5, 1.5)
ViewA.layer.transform = CATransform3DMakeScale(1.5, 1.5, 1.0)
ViewB
は自動ViewA
高さ、幅、または位置が変換後に変更しているので、それはRECT調整してはなりません。私はまた、未定義の状態になります変換は、ビューまたはフレームのFrame
またはBounds
には影響を与えません
self.view.layoutIfNeeded()
私はドキュメンテーションでそれを逃していただきありがとうございます..実際には、私はフレームを記録していたと私はフレームがchagingですが、関連するビューが混乱しているので、スケールされた結果を得ていた。変換をアイデンティティに変えてその違いをフレームに適用する方法があるのは興味深いだけです。 – Azerue