세로 방향으로 iPad xib가있는 UIViewController가 있습니다. 내 iPad가 가로 방향 일 때 해당 뷰 컨트롤러를 내 UISplitViewController의 세부 정보 창에 배치하면 크기에 맞게 자동으로 크기가 조정됩니다.UIScrollView 컨텐트를 변경해야합니다. 세로 xib가 가로로 조정될 때 크기 지정
그러나 -viewDidLoad에서 내보기를 구성 할 때보기의 최종 크기는 아직 가로 방향/크기가 아닙니다.
UIViewController가 이미 가로로로드 될 때 -didRotateFromInterfaceOrientation : 메서드와 그와 연결된 다른 메서드가 호출되지 않기 때문에 스크롤 뷰의 contentSize와 내용을 언제 어디서 올바르게 설정할 수 있습니까?
나는 단지 내 스크롤 뷰 세로로 스크롤 할, 그래서있는 ScrollView 안에 내있는 contentView 다시 맞게되는가에 어떤 방향으로 뷰 컨트롤러의 폭에 있는지 확인하려면.
상관없이 내가 뭘 확인하는지 .frame 또는 .bounds 내 뷰, 내 스크롤보기 또는 심지어 내 SplitViewController 세부 뷰 컨트롤러 내 실제 크기를 보여줘. 가로 방향으로 UISplitViewController를 사용하면 왼쪽이 320 픽셀이므로 너비가 704 픽셀을 넘지 않아야합니다.하지만 프레임과 내 뷰 및 스크롤 뷰의 경계를 확인할 때마다 768 픽셀 폭으로보고됩니다. 이는 올바르지 않습니다.
스크롤 표시기를 올바르게 볼 수 있기 때문에 내 scrollview는 704px 크기로 명확합니다.
무엇이 누락 되었습니까? 당신이 자동 크기 마스크를 확인 회전 할 때 크기를 조정보기를 얻을하지 않으려면
여기, -viewDidLoad 내 코드 ... 모든
CGSize textSize = [self.purchase.textDescription sizeWithFont:self.labelTextDescription.font constrainedToSize:allowedSize lineBreakMode:UILineBreakModeWordWrap];
CGRect textFrame = self.labelTextDescription.frame;
textFrame.size.height = textSize.height;
self.labelTextDescription.frame = textFrame;
CGRect contentFrame = self.contentView.frame;
contentFrame.size.height += textSize.height;
if (contentFrame.size.width > self.scrollView.frame.size.width) {
contentFrame.size.width = self.scrollView.frame.size.width;
}
self.contentView.frame = contentFrame;
[self.scrollView addSubview:self.contentView];
self.scrollView.contentSize = self.contentView.frame.size;
콘텐츠 크기를 설정 한 코드를 게시 할 수 있습니까? viewDidLoad에 있습니까? – atxe
예, viewDidLoad에서 코드를 추가했습니다. –
회전 할 때 UIScrollView의 콘텐츠 크기가 실제로 변경됩니까? 내용이 같고 크기가 같지 않습니까? – atxe