2012-09-13 4 views
1

내 iOS 앱에서 다른보기 내부에 세 개의 웹보기가 정의되어 있습니다. 두 가지 웹보기가 항상 사용되는 것은 아니므로 나머지보기를 화면의 나머지 부분을 채우도록 요청하는 방법이 있습니까? 안드로이드에 상응하는 것은 "fill_parent"를 사용할 때입니다.화면을 채우기 위해 동적으로보기를 변경하는 방법이 있습니까?

지금은 정말 귀찮은 프레임을 변경하여 모든 작업을 수행하고 있습니다.

// There is no top banner, but it does use the footer 
topBannerView.frame = CGRectMake(0, 0, 320, 0); 
mainView.frame = CGRectMake(0, 0, 320, 400); 
footerView.frame = CGRectMake(0, 400, 320, 60); 

명시 적으로 프레임을 설정하지 않고도 mainView가 나머지 화면을 사용하게 할 방법이 있습니까?

답변

0

값을 하드 코딩하는 대신 표시되는 크기를 확인하고 그로부터보기가 필요한 크기를 계산하는 코드를 삽입 할 수도 있습니다. 그것은처럼 보일 수 있습니다 다음 다른 2 뷰

if(!topBannerView.hidden) 
{ 
    topBannerHeight = topBannerView.bounds.size.height; //syntax here might be a little off, can't test code right now, but I think it's close to this 
} 
else 
{ 
    topBannerHeight = 0; 
} 

반복,

topBannerView.frame = CGRectMake(0, 0, 320, topBannerHeight); 
mainView.frame = CGRectMake(0, topBannerHeight, 320, mainViewHeight); 
footerView.frame = CGRectMake(0, (mainViewHeight+topBannerHeight), 320, footerViewHeight); 

이 방법은 아직 좀 투박하지만, 나중에 물건의 크기를 조정하려는 경우 조금 더 잘 작동합니다 .

편집 : 구문을 정리 했으므로 이제는 정확해야합니다.

+0

나는 이와 비슷한 일을 끝 냈고, 나는 단지 원하지 않았습니다. 감사. – Stephanie

0

앱에 iOS 6가 필요하게하려면 autolayout을 사용하면됩니다.

iOS 5에서 실행하려면 코드에서 실행해야합니다.

+0

우리는 iOS 4로 다시 지원합니다. – Stephanie

관련 문제