呈现 UIView 的最少代码

Barest minimum code to present a UIView

创建一个创建 UIView 并将其显示在 iOS 设备屏幕上的项目的绝对最低限度代码是多少?

没有故事板、模板或任何其他发明。只是最简单的 UIView 展示。

我很欣赏模板可以用来制作东西 "easier",但是为了理解所有东西是如何协同工作的,我想尝试构思框架及其与 OS 以最简单、真正基于代码的形式。

即没有情节提要及其所有流程。纯代码。

我试过使用 google 找到一些与某人以整体方式讨论 iOS 的东西,以便清楚地查看视图...但这都是关于 "ease"据我所知,而不是理解。

和Swift。

// 所有双关语都是无意的刺激副产品。

编辑:::

在没有视图控制器、情节提要等的情况下,我如何开始一个新项目?似乎只有基于故事板的模板,无法启动 "blank" 项目。

最低限度就是这个,只需将其放在您的应用委托中,删除其他 .swift 文件,这应该是您需要的最低限度:

  import UIKit

  @UIApplicationMain
  class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var rootViewController: UINavigationController?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        rootViewController = UINavigationController(rootViewController: ViewController())
        self.window!.rootViewController = rootViewController
        self.window!.makeKeyAndVisible()
        return true
     }
   }

这需要零故事板,但是如果你想为所有这些添加一个 VIEW 并控制那个 uiview,那么这样做:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var rootViewController: UINavigationController?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        var firstVC = UIViewController()
        var firstVCView = UIView()
        firstVCView.backgroundColor = UIColor.redColor()
        firstVC.view = firstVCView

        rootViewController = UINavigationController(rootViewController: firstVC)    self.window!.rootViewController = rootViewController
        self.window!.makeKeyAndVisible()
        return true
    }
}

我可以从头开始向您展示,我将开始一个全新的项目并将其删除:

方法如下:

  1. select单视图应用项目

  2. 进入info.plist文件,删除这两个条目:

  1. 然后,删除故事板和笔尖。

  2. 保留 "ViewController.swift" 文件

  3. 将其放入您的 AppDelegate.swift:

    import UIKit
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
        var rootViewController: UINavigationController?
    
        func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
            rootViewController = UINavigationController(rootViewController: ViewController())
            self.window!.rootViewController = rootViewController
            self.window!.makeKeyAndVisible()
            return true
        }
    }
    
  4. 然后,执行此操作,单击“否”按钮 "use asset catalog"

  1. 单击要使用资产目录的弹出框,然后确保此字段为空,其中显示 "launch screen file"

  2. 编译并运行你的项目

一个带有应用委托的完全空的应用程序,在 didFinishLaunchingWithOptions 中,这将呈现一个视图:

self.window.rootViewController = [UIViewController new];

UIViewController

中有一个视图