如何在Swift中设置UIWindow属性

如何在Swift中设置UIWindow属性,swift,Swift,我一直试图在Swift中对UIWindow边界进行一个简单的更改。到目前为止,我已经: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:NSDictionary?) -> Bool { // Override point for customization after application launch. //SHIFT EVERYTHIN

我一直试图在Swift中对UIWindow边界进行一个简单的更改。到目前为止,我已经:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:NSDictionary?) -> Bool {
    // Override point for customization after application launch.


    //SHIFT EVERYTHING DOWN - THEN UP IN INDIV VCs IF ios7>
    var device:UIDevice=UIDevice()
    var systemVersion:String=device.systemVersion
    println(systemVersion)
    //Float(systemVersion)

    if (systemVersion >= "7.0") {
        UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
        self.window.setClipsToBounds = true // --> Member doesnt exist in UIWindow
        self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height);
        self.window.bounds = CGRectMake(0,0, self.window.frame.size.width, self.window.frame.size.height);
    //}

    let ok = true
    println("Hello World")
    return true
}
但我得到:


UIWindow没有在每个self.window.property setter行指定成员。

问题在于
self.window
是可选的。你首先必须这样做。您还需要使用
clipstobunds
而不是
setclipstobunds

if let window = self.window {
    window.clipsToBounds = true
    window.frame = CGRect(x: 0, y: 20, width: window.frame.size.width, height: window.frame.size.height);
    window.bounds = CGRect(x: 0, y: 0, width: window.frame.size.width, height: window.frame.size.height);
}

注意:我还更新了CGRectMake,使用CGRect初始值设定项而不是全局
CGRectMake
函数创建CGRect的首选快捷方式。

问题在于
self.window
是可选的。你首先必须这样做。您还需要使用
clipstobunds
而不是
setclipstobunds

if let window = self.window {
    window.clipsToBounds = true
    window.frame = CGRect(x: 0, y: 20, width: window.frame.size.width, height: window.frame.size.height);
    window.bounds = CGRect(x: 0, y: 0, width: window.frame.size.width, height: window.frame.size.height);
}

注意:我还更新了CGRectMake,使用CGRect初始值设定项而不是全局
CGRectMake
函数创建CGRect的首选快捷方式。

在AppDelegate类中,窗口是可选变量。您需要使用!强制展开变量

比如说,

self.window!.clipsToBounds = true

如果您不熟悉Swift中的optionals如何工作,请查看Apple提供的有关它们的文档。

在AppDelegate类中,window是一个可选变量。您需要使用!强制展开变量

比如说,

self.window!.clipsToBounds = true

如果您不熟悉Swift中的optionals的工作原理,请查看苹果公司关于它们的文档。

Wow!在这里,我认为Swift应该使编码更有效。谢谢哇!在这里,我认为Swift应该使编码更有效。谢谢