필자는 원하는대로 작동하는 일부 textviews가있는보기가 있습니다. 가로 또는 세로의 같은 오른쪽 여백으로 확장됩니다.iOS textviews가 가로 스크롤보기에서 확장되지 않습니다.
최근에는 일반보기를 scrollview로 변경해 보았습니다. 하지만 필자는 한때 이러한 텍스트 뷰를 확장하는 데 운이 없었습니다. 가로 모드에서는 모든 것이 세로 폰과 같은 너비로 왼쪽에 모이게됩니다.
다음은 몇 가지 코드입니다.
- (void)viewDidLoad {
CGSize screen = [self handleScreenOrientation];
[(UIScrollView *)self.view setContentSize:CGSizeMake(screen.width, screen.height)];
}
- (CGSize)handleScreenOrientation {
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
CGRect screenRect = [[UIScreen mainScreen] bounds];
if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) {
return CGSizeMake(screenRect.size.width, screenRect.size.height);
}
else {
return CGSizeMake(screenRect.size.height, screenRect.size.width);
}
}
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
CGSize screen = [self handleScreenOrientation:toInterfaceOrientation];
UIScrollView *scrollView = (UIScrollView *)self.view;
scrollView.frame = CGRectMake(0, 0, screen.width, screen.height);
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, scrollView.frame.size.height);
[scrollView setNeedsDisplay];
}
전달 배향 메소드 handleScreenOrientation 그냥 통과 방향이 아닌 상태 바의 현재의 방향을 사용없이 파라미터/w 것과 동일하다.
내가 확인한 내 scrollview autviewize subviews 설정되어 있습니다.
어떤 아이디어라도 높이 평가할 수 있습니다. 감사.
업데이트 : 내가있는 viewDidLoad 및 willrotatetointerfaceorientation하는
self.view.autoresizesSubviews = true;
for (UIView *view in self.view.subviews) {
view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth;
}
을 추가했습니다. 변경 없음.
autoresizingMasks를 설정해야하는 것처럼 들립니다. – Wienke
내 모든 제약 조건과 겹침 선은 수퍼 뷰가보기에 불과했을 때 이전과 동일합니다. scrollview이기 때문에 행동이 바뀌 었습니다. – erosebe
추가 된 코드로 autoresizingMask의 모든 기반을 확실히 덮었습니다. 더 자세히 보시면 아래에 게시 할 답변을 볼 수 있습니다. – Wienke