当前位置: 首页 > 面试题库 >

Xcode 11和iOS13,使用UIKIT不能更改UIViewController的背景颜色

寿鸣
2023-03-14
问题内容

因此,我在Xcode11中创建了一个新项目,将AppDelegate设置为新的VC,并注释了xxx场景委托中存在的代码不包含UIKit部分:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        window = UIWindow()
        window?.makeKeyAndVisible()
        let controller = MainVC()
        window?.rootViewController = controller
        return true
    }

我想在UIViewController中设置背景色,

import UIKit

class MainVC : UIViewController {
    override func viewDidLoad() {
        view.backgroundColor = .red
        self.view.backgroundColor = .blue
        print("main Screen showing")
        ConfigureUI()
        setupUI()

    }

但是结果是模拟器中出现了blackScreen。甚至从其他项目中获取代码也无济于事…我之前在其他Xcode版本中已经做到了,应该可以工作。有任何想法吗?

PS:该应用程序进入ViewController,我可以在控制台中打印,但屏幕为黑色。


问题答案:

并注释了xxx场景委托中存在的代码没有UIKit部分

你一定不要那样做。它是 你的 代码,需要在正确的地方去。如果您在Xcode 11中创建一个新项目,则此代码将不执行任何操作:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow()
    window?.makeKeyAndVisible()
    let controller = MainVC()
    window?.rootViewController = controller
    return true
}

该代码 运行 ,但是window属性不是您应用程序的窗口,因此您所做的没有意义。现在,该窗口属于 场景委托
。那是您需要创建窗口并设置其根视图控制器的地方。

func scene(_ scene: UIScene, 
    willConnectTo session: UISceneSession, 
    options connectionOptions: UIScene.ConnectionOptions) {
        if let windowScene = scene as? UIWindowScene {
            self.window = UIWindow(windowScene: windowScene) 
            let vc = MainVC()                                  
            self.window!.rootViewController = vc             
            self.window!.makeKeyAndVisible()                 
        }
}


 类似资料:
  • 问题: 如何更改UIkit图标的颜色?具体来说,我想更改复选框图标的背景颜色。 这里是指向UIkit表单文档的链接。 我想改变背景的颜色。

  • 我在设计JScrollPane的样式时遇到问题。我只想能够更改拇指和背景的颜色(同时删除增加/减少按钮)。到目前为止,我尝试了以下方法: 而且 有了上面所有的代码,我得到了一个白色背景的暗拇指。有趣的是,如果我删除setUI函数,我会得到一个默认的拇指,背景变暗... 有什么想法吗? 谢啦 解决****** 上面的configureScrollBarColors函数可以通过以下方式使用: 把拇指的

  • 问题内容: 有谁知道使用JavaScript交换网页背景色的简单方法? 问题答案: 修改JavaScript属性。 例如: 注意:这确实取决于页面的组合方式,例如,如果您使用的背景颜色不同的DIV容器,则需要修改其背景颜色而不是文档主体。

  • 问题内容: 我希望能够根据当前路径更改背景色。 我尝试通过每当路径更改时检查$ location.path()来执行此操作,然后使用伪指令更改背景色,但这似乎很简单(并且不起作用)。 什么是实现这一目标的更分离的方法? 如果有人想看,这是我写的代码。 问题答案: 为了消除样式,数据,内容等方面的动态变化,通常很实际的做法是创建另一个包含接口(自定义提供程序)的角度模块,该接口可让您在配置级别之前和

  • 问题内容: 有什么方法可以更改RibbonApplicationMenuEntryPrimary(Flamingo)的背景颜色吗? 我看了看它的javadoc,但找不到方法。 问题答案: 1)请注意,我已检查API;从开始,有很多导入和扩展,它们来自许多不同的方法(这里是我尝试覆盖MetalButtonUI的尝试)。 2)也许更改内置颜色主题会很容易,但是我不建议这样做。 3)我不是Flaming

  • 我有一个带有半径和笔划的CardView,但当我以编程方式更改CardView背景时,半径和笔划将丢失,我希望新颜色保留在笔划内。 这是我的cardview xml 这里是我换颜色的地方: