2012-07-23 8 views
1

문제는 3 부분으로 구성된보기가 있다는 것입니다.내용에 맞게 UIView의 크기를 조절하십시오.

첫 번째 부분은 간단한 헤더 - 항상 동일한 높이입니다! 두 번째 부분은 단순한 설명 선입니다 - 항상 동일한 높이!

이제 문제는 세 번째 부분입니다. 동적으로 계산 된 하위보기 (각 사용자 정의 컨트롤러가있는 경우)의 경우 viewContainer입니다. 내용의 높이는 백엔드에서 다운로드 한 일부 텍스트 정보로 인해 동적입니다. 그래서 때로는 전체 텍스트를 읽을 수 있도록 스크롤해야 할 수도 있습니다.

은 현재 내가 이런 식으로 일을 오전 :

  • 특정 텍스트에 대한 UILabel의 크기를 계산합니다.
  • 부모보기의 크기를 조정하여 UILabel을 맞 춥니 다 (작은 경우).
  • 그런 다음 내 하위 스크롤에 맞게 내 3-Part-ViewController-View의 scrollView 크기를 조정하십시오.

동적 콘텐츠와 함께 세부의 ViewController :

self.labelDescription.text = self.customData.descriptionText; 
    [self.labelDescription sizeToFit]; 
    if(self.view.frame.size.height < (self.labelDescription.frame.size.height + self.labelDescription.frame.origin.y)) { 
    CGRect newSize = CGRectMake(0, 
           0, 
           self.view.frame.size.width, 
           self.labelDescription.frame.size.height + 
           self.labelDescription.frame.origin.y); 
    self.view.frame = newSize; 
    } 

내 상세보기를 추가하고 크기를 조정 한 후 스크롤 뷰의 크기 조정 : 그래서 제 질문은

[self addChildViewController:controllerCustomData]; 
[self.scrollView addSubview:controllerCustomData.view];  
CGRect newRect = CGRectMake(0, 
          self.viewElementDetailContentContainer.frame.origin.y, 
          controllerCustomData.view.frame.size.width, 
          controllerCustomData.view.frame.size.height); 
controllerCustomData.view.frame = newRect; 
self.scrollView.contentSize = CGSizeMake(self.scrollView.contentSize.width, newRect.origin.y + newRect.size.height); 

입니다

을,이 쉽다 이것을하는 방법?

답변

0

필요한 모든 것을 수행하는 방법을 만들 수 있습니다. 메소드 (어쩌면 methodS)를 한 번 작성하고 필요한 인수를 전달하여 사용해야합니다.

관련 문제