Storyboard 에서 iPad용 UI를 만들고 있는데, 가로/세로에 대해 서로 다른 UI를 만들어야 하는 경우가 생겼다.
문제는 iPad에서는 iPhone처럼 Regular/Compact을 조절해서는 안된다는 것.
아래와 같이 해결했음.
UITraitCollection을 이용해서 화면에 따라 모드를 지정해 준다.
Storyboard 상에서는 아래 모드로 작업을 해두고
세로를 작업할 때는 Width:Any, Height:Regular 로 하고,
가로를 작업할 때는 Width:Regular, Height:Compact로 했음.
RootViewController나 ParentViewController에 아래 코드를 추가하면 된다는데, 나는 NavigationController에 해 줬음.
- (UITraitCollection *)overrideTraitCollectionForChildViewController:(UIViewController *)childViewController
{
UITraitCollection *wRegular = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular];
UITraitCollection *hCompact = [UITraitCollection traitCollectionWithVerticalSizeClass:UIUserInterfaceSizeClassCompact];
UITraitCollection *horizontal = [UITraitCollection traitCollectionWithTraitsFromCollections:@[wRegular, hCompact]];
UITraitCollection *wAny = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassUnspecified];
UITraitCollection *hRegular = [UITraitCollection traitCollectionWithVerticalSizeClass:UIUserInterfaceSizeClassRegular];
UITraitCollection *portrait = [UITraitCollection traitCollectionWithTraitsFromCollections:@[wAny, hRegular]];
if (CGRectGetWidth(self.view.bounds) < CGRectGetHeight(self.view.bounds))
{
return portrait;
}
else
{
return horizontal;
}
}
참조 URL : http://stackoverflow.com/a/28268200
'기술 > iOS' 카테고리의 다른 글
Audio route 변경 시 Notification 수신 방법 (0) | 2016.06.10 |
---|---|
Headphone 이용 시 앱에서 이벤트 수신 방법. (0) | 2016.06.10 |
NSString 특정 자리수만큼 문자열 분리하기. (0) | 2015.02.27 |
XCode 6 Simurator Keyboard에서 한글 나오도록 셋팅하기. (0) | 2015.02.10 |
XCode에서 메모리 영역 보기. (0) | 2014.04.09 |