2017-04-03 64 views
0

我剛更新到最新版本的Swift,並且遇到了斷點錯誤問題。控制檯中沒有錯誤。更新到最新的Swift版本問題

backgroundsetting.innerColor = UIColor.rgb(fromHex: 0xB0E7D7) 

backgroundsetting.outterColor = UIColor.rgb(fromHex: 0x005E7D) 

backgroundsetting.frame = (frame: CGRect(x: self.view.frame.size.width * 0, y: self.view.frame.size.height * 0, width:self.view.frame.size.width, height: self.view.frame.size.height)) 
self.view.addSubview(backgroundsetting) 

然後,更新後要我設置backgroundsetting.frame as! CGRect,當我打開應用程序的那部分它崩潰的應用程序。爲什麼會發生?這裏是後代碼:

backgroundsetting.innerColor = UIColor.rgb(fromHex: 0xB0E7D7) 

backgroundsetting.outterColor = UIColor.rgb(fromHex: 0x005E7D) 

backgroundsetting.frame = (frame: CGRect(x: self.view.frame.size.width * 0, y: self.view.frame.size.height * 0, width:self.view.frame.size.width, height: self.view.frame.size.height)) as! CGRect 
self.view.addSubview(backgroundsetting) 

回答

0

backgroundsetting.frame屬性是一個類型的CGRect,爲什麼不建立一個CGRect這樣的:

backgroundsetting.frame = CGRect(x: self.view.frame.size.width * 0, y: self.view.frame.size.height * 0, width:self.view.frame.size.width, height: self.view.frame.size.height) 
+0

非常感謝你 –

+1

天才任何時候0等於零。爲什麼不'backgroundsetting.frame = view.frame'? –

+1

當然它等於零;這是一個安全防護;以防蘋果發佈的任何未來設備具有不同的特性 –

0

如果使用約束爲您的視圖,然後使用高度: self.view.frame.size.height和width:self.view.frame.size.width,與iPhone屏幕相比,它不會顯示適當的高度和寬度。

爲了更好地使用UIScreen尺寸,例如UIScreen.main.bounds.height和UIScreen.main.bounds.width,它將始終顯示iPhone的原始寬度和高度。

backgroundsetting.frame = CGRect(x: self.view.frame.size.width * 0, y: self.view.frame.size.height * 0, width:UIScreen.main.bounds.width, height: UIScreen.main.bounds.height) as! CGRect 
    self.view.addSubview(backgroundsetting)