2017-10-09 3 views
0

En classe UIViewController je suis en utilisant ce code:Quelle est l'image réelle de la vue de UICollectionViewController?

func handleMore() { 
    let blackView = UIView() 
    blackView.backgroundColor = UIColor.black 
    view.addSubview(blackView) 
    blackView.frame = view.frame 

} 

pourquoi il quitte la bande blanche? https://drive.google.com/open?id=0Bz964D-WrU9KYktYdmhyR3dNY1U i vraiment confus (

+0

Réglez-le aux limites, pas le cadre. blackView.frame = view.bounds – Tim

+0

je l'ai eu si je mets au lieu de blackView.frame = view.frame ----->. blackView.frame = (collectionView? .frame)! Voir remplit avec sombre mais alors quelle est la propriété de vue? et pourquoi est si petit? et il ne couvre pas toutes les fenêtres sans barre d'état et barre de navigation ....? –

+0

Imprimez le cadre de la vue et vous verrez son origine. Qu'essayez-vous d'accomplir? – Tim

Répondre

0

Définir le cadre de limites de la vue, pas le cadre.

blackView.frame = view.bounds

Je suppose que vous ne se soucient que la taille de la vue, et non pas son origine. Ainsi, vous devez utiliser des bornes.

UIView frame, bounds and center

+0

elle se connecte 0.0, 64.0, 375.0, 603.0 mais je ne peux que la barre de menu sous la barre de navigation et j'ai ajouté seulement cette contrainte verte view.addConstraintsWithFormat (format: "V: | v0 (50)] ", vues: [menuBar]) alors avez-vous une idée de ce que sont ces 14 points? –

+0

64 est la barre de navigation à 44 points, plus la barre d'état à 20 points. En définissant blackView.frame pour voir.frame, vous donnez à BlackView un décalage de 64 points. C'est pourquoi il est plus bas sur l'écran de votre capture d'écran. Si vous le définissez aux limites, cela n'arrivera pas. – Tim

+0

alors pourquoi compter le décalage à partir de la fin de la barre de navigation? parce que si j'imprime collectionView? frame il enregistre 0.0 0.0 375.0 603.0 alors que la définition de blackView.frame à collectionView? frame ne couvre pas la barre de navigation? –