Ok, więc z xcode możesz mieć inny ekranrozmiary dla iPhone'a 5 i iPhone'a 4, kiedy próbuję umieścić rzeczy w pliku Storyboard, zawsze się mylą, jakbym umieścił wszystko w jedną stronę dla iPhone'a 5, a następnie został odcięty na iPhone 4. Czy istnieje sposób mieć dwie różne wersje serii ujęć, więc mogę ustawić obiekty dla każdego rozmiaru ekranu inaczej?
Odpowiedzi:
0 dla odpowiedzi № 1Możesz to zrobić ręcznie w kodzie, wybierając storyboard na podstawie rozmiaru ekranu. Jednak nie sądzę, że istnieje sposób, aby to zrobić automatycznie, ponieważ tylko info.plist aplikacji ma Main storyboard file base name
, Main storyboard file base name (iPad)
, i Main storyboard file base name (iPhone)
.
Aby to zrobić ręcznie, będziesz chciał załadować swój pierwszy kontroler widoku w delegacie aplikacji w następujący sposób:
//AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
if ([UIScreen mainScreen].bounds.size.height == 568.0) {
//device is an iPhone 5 or 5S
storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard568Height" bundle:[NSBundle mainBundle]];
}
self.window.rootViewController = [storyboard instantiateInitialViewController];
[self.window makeKeyAndVisible];
}
Po załadowaniu kontrolera pierwszego widokuw ten sposób powinieneś być w stanie po prostu użyć tych znaków w tej serii ujęć, aby ponownie uniknąć tej logiki. Jeśli musisz ręcznie załadować kontroler widoku, możesz uzyskać dostęp do self.storyboard
właściwość prądu UIViewController
aby upewnić się, że korzystasz z prawidłowej serii ujęć bez sprawdzania wysokości ekranu.