2013-07-30 4 views
0

originalFrame이라는 속성이있는 UIView의 하위 클래스가 있습니다.스토리 보드에서로드 된 UIView 하위 클래스의 원래 프레임을 저장하는 방법

스토리 보드에서로드 된 원본 프레임 값을 원래대로 저장하려고합니다.

내가 awakeFromNib 메소드를 오버라이드 (override) 한 :

직후가 떨어져의 크기가 조정되지 않는 한 뷰 컨트롤러의 뷰가 화면 크기에 맞게 경우 작동
-(void)awakeFromNib 
{ 
    self.originalFrame = self.frame; 
} 

.

그러나 내 스토리 보드의보기 컨트롤러는 모두 iPhone 4 인치 화면이므로 iPhone 3.5 인치 화면에서 실행될 때보기 컨트롤러의보기가 3.5 인치 화면에 맞게 조정되기 전에 awakeFromNib가 호출됩니다 . 내 하위 뷰가 맨 위에 고정되어 있지 않으면 원본 프레임 속성은 크기 변경 후 해당 프레임을 반영하지 않습니다.

뷰 컨트롤러의보기 크기를 조정 한 후에 layoutSubviews를 재정 의하여 프레임 속성을 재정의 할 수 있었지만이 방법은 다른 시간에도 호출되며 화면에 맞게 초기 크기 조정인지 여부를 알 수 없습니다. 다른 것.

보기 컨트롤러의 viewDidLoad 메서드에서 대/소문자를 기준으로이 속성을 수동으로 설정할 필요없이이 작업을 수행 할 수있는 방법이 있습니까?

답변

0

awakeFormNib에서 CGRectZero으로 설정하면 값이 이미 설정되어 있는지 확인하고 CGRectZero이면 layoutSubviews을 체크인 할 수 있습니다. 프레임이 layoutSubviews 인 경우에만 CGRectSubviews으로 설정하십시오.

관련 문제