2013-07-28 4 views
0

내 XIB에서보기 크기를 Retina 3.5로 설정하고 "Use Autolayout"을 off로 설정합니다.iPhone 4 & 5 사이의 UIView 프레임 문제

프로그래밍 방식으로 UIImageView를 만들고 UI의 AutoresizingMask를 316으로 설정하고 UIViewAutoresizingFlexibleTopMargin을 설정했습니다.

iPhone 5 시뮬레이터에서 뷰를 테스트 할 때 UIImageView는 뷰의 맨 아래에 있어야합니다. 런타임 중에 똑같은 UIImageView를 같은 Y 좌표에 그리고 AutoresizingMask를 UIViewAutoresizingFlexibleTopMargin으로 설정합니다. 새 UIImageView는 첫 번째 UIImageView와 동일한 위치 (보기의 맨 아래)에 그려지지 않습니다.

내가 누락 된 항목이 있습니까?

감사합니다. Oded.

답변

0

하위보기를 추가 할 때 (수퍼 뷰가 자동 크기 조정되기 전이나 후에) 달라집니다. 어쨌든,보기를 배치하여 바닥에 고정 된 정적 인 경우 수퍼 및 하위보기의 heigth에서 y 위치를 계산해야하며 그 전후에 완료되었는지 여부는 중요하지 않습니다.

+0

첫 번째 하위 뷰는 ViewDidLoad 메서드 내에서 설정되지만 [super viewDidLoad] 호출 후에 올바른 위치에 설정됩니다 .Y 좌표는 view.frame.size.height 속성에서 계산됩니다. 두 번째 하위 뷰의 프레임은 첫 번째 하위 뷰의 프레임에서 복사되고 아래쪽에 그려집니다. – Oded

+0

프레임이 기존보기에서 복사되므로 자동 크기 조정 마스크가 동일하고 수퍼 뷰가 동일합니까? – Wain

+0

예. 이 말이 맞습니다. – Oded