최근에 뷰와 레이어에서 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 조정한다. 또한
self.view.layoutIfNeeded()
고마워요. 문서에서 그 내용을 놓쳤습니다. 실제로 프레임을 로깅하고 있었고, 프레임이 얽혀 있지만 관련보기가 혼란스러워서 스케일 된 결과를 얻었습니다. 단지 변형이 아이덴티티로 바뀌고 그 차이를 프레임에 적용하는 방법이 궁금합니다. – Azerue