gpt4 book ai didi

ios - swift 每种屏幕尺寸的不同 StoryBoard

转载 作者:行者123 更新时间:2023-11-28 10:21:25 24 4
gpt4 key购买 nike

如何在 Swift 中为每种可能的屏幕尺寸设置不同的 Storyboard?

我已经有了 Objective-C 代码。

请不要自动布局,我不需要它。

但是如何将它转换为 Swift 呢?我是 Swift 的新手。

这是 Objective-C 的代码:

AppDelgate.m 文件

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.

// int screenHeight = [UIScreen mainScreen].bounds.size.height;
// NSLog(@"Screen Height is %i", screenHeight);

// grab correct storyboard depending on screen height
UIStoryboard *storyboard = [self grabStoryboard];

// display storyboard
self.window.rootViewController = [storyboard instantiateInitialViewController];
[self.window makeKeyAndVisible];

return YES;
}

- (UIStoryboard *)grabStoryboard {
// determine screen size
int screenHeight = [UIScreen mainScreen].bounds.size.height;
UIStoryboard *storyboard;

switch (screenHeight) {
// iPhone 4s
case 480:
storyboard = [UIStoryboard storyboardWithName:@"Main-4s" bundle:nil];
break;

// iPhone 5s
case 568:
storyboard = [UIStoryboard storyboardWithName:@"Main-5s" bundle:nil];
break;

// iPhone 6
case 667:
storyboard = [UIStoryboard storyboardWithName:@"Main-6" bundle:nil];
break;

// iPhone 6 Plus
case 736:
storyboard = [UIStoryboard storyboardWithName:@"Main-6-Plus" bundle:nil];
break;

default:
// it's an iPad
storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
break;
}
return storyboard;
}

最佳答案

如果您只想将代码转换为 Swift,您可以引用 Apple 的 swift 教程。您可以在 iBook Store 或 Web 上查看这本书。为了您的引用,我将代码转换为 Swift。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let splitViewController = self.window!.rootViewController as! UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
return true


// int screenHeight = [UIScreen mainScreen].bounds.size.height;
// NSLog(@"Screen Height is %i", screenHeight);

// grab correct storyboard depending on screen height

let storyboard = grabStoryboard()

// display storyboard
self.window?.rootViewController = storyboard.instantiateInitialViewController()
self.window?.makeKeyAndVisible()

return true
}

func grabStoryboard() -> UIStoryboard
{
// determine screen size
let screenHeight = UIScreen.mainScreen().bounds.size.height
var storyboard: UIStoryboard! = nil

switch (screenHeight)
{
// iPhone 4s
case 480:
storyboard = UIStoryboard(name: "Main-4s", bundle: nil)
// iPhone 5s
case 568:
storyboard = UIStoryboard(name: "Main-5s", bundle: nil)
// iPhone 6
case 667:
storyboard = UIStoryboard(name: "Main-6", bundle: nil)
// iPhone 6 Plus
case 736:
storyboard = UIStoryboard(name: "Main-6-Plus", bundle: nil)
default:
// it's an iPad
storyboard = UIStoryboard(name: "Main", bundle: nil)
}

return storyboard
}

关于ios - swift 每种屏幕尺寸的不同 StoryBoard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34486873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com