2017-04-03 1 views
0

Je viens de mettre à jour à la dernière version de Swift et je reçois des problèmes avec une erreur de point d'arrêt. Il n'y a pas d'erreurs dans la console.Mise à jour aux derniers problèmes de version de 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) 

Puis, après la mise à jour, il me voulait régler le backgroundsetting.frame as! CGRect et il se bloque l'application quand j'ouvre cette partie de l'application. Pourquoi cela se produit-il? Voici le code après:

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) 

Répondre

0

La backgroundsetting.frame propriété est un type de CGRect, pourquoi ne pas créer un CGRect comme ceci:

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

Merci beaucoup –

+1

génie tout ce que 0 est égal à zéro. pourquoi pas 'backgroundsetting.frame = view.frame'? –

+1

Bien sûr, il est égal à zéro; c'est un coffre-fort; juste au cas où un dispositif futur que les rejets d'apple est de différentes caractéristiques –

0

Si vous utilisez la contrainte pour votre vue, puis utilisez la hauteur: self.view.frame.size.height et width: self.view.frame.size.width, il ne montrera pas la hauteur et la largeur comme comparer à l'écran de votre iPhone. Pour cela il est préférable d'utiliser UIScreen taille par exemple UIScreen.main.bounds.height et UIScreen.main.bounds.width, il montrera toujours la largeur et la hauteur d'origine de votre 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)