2013-06-24 4 views
1

partent view (iPhone 5 4inch 화면)에 따라 자동 크기를 설정하는 UIButton이 있습니다. 버튼이 선택되면 버튼 주위에 표시되는 테두리 이미지가 있습니다. 문제는 자동 크기 조정이 되어도 UIButton 프레임이 원래 크기를 반환하므로 일치시킬 테두리 이미지의 프레임을 설정할 수 없다는 것입니다.어쨌든 UIVIew의 자동 크기 조정 된 프레임을 얻으려면?

자동 크기 지정이 완료된 후 프레임을 가져 오는 방법이 있습니까?

답변

-1

이 논리를 UIView의 layoutSubviews 메서드에 넣으려고한다고 생각합니다. 뷰가 자동 크기 조정을 마친 직후에 호출됩니다.

-(void) layoutSubviews 
{ 
    [super layoutSubviews]; 

    //Logic to layout your custom views would go at this point, i.e. 

    CGRect buttonFrame = CGRectInset([self bounds], 0, 0); 
    [[self button] setFrame:buttonFrame];  
} 
+0

layoutSubviews는 UIView 메소드입니다. 아마도 UIButton을 서브 클래스 화해야할까요? – tbag

+0

은 UIViewController 메서드입니다. 이 메서드는 UIButton이 포함 된 viewController에 있어야합니다 (심지어 스토리 보드/XIB에서 와이어 링하도록 할 수도 있습니다). 예제에서는 viewController의 인스턴스 변수로 UIButton을 설정했습니다. UIButton을 하위 클래스 화해야하는 이유가 표시되지 않습니다. – ephilip

+0

내가 잘못 생각한 것 같아. 실제로는 UIView 메소드입니다. http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html. 그래서 UIButton 하위 클래스를합니다. – tbag

0

UIViewController의 viewDidLayoutSubviews을 사용해 보셨습니까? layoutSubviews과 같이 미세한 것이 아니기 때문에 개별적인보기를위한 것이지만 필요에 따라 여전히 충분할 수 있습니다.

+0

나는 그것을 시도했다. 그러나 그것은보기의 자동 크기 조정 된 프레임을 반환하지 않습니다. viewDidLayoutSubviews는 viewDidAppear 전에 호출됩니다. 그러나 viewDidAppear는 자동 크기 조정 된 프레임을 반환하지 않습니다. – tbag