2017-10-09 3 views
2

Cibler différents appareils iPhone comme l'iPhone X & iPhone 8. Je veux commencer mon UIView juste à la différence de 1px de la barre d'état en utilisant un redimensionnement automatique. J'ai pu corriger cette chose en commençant UIView 21px y axe avant iPhone X. Comment puis-je obtenir cette chose dynamique afin que UIView toujours commencé après Staus bar de tous les iPhone.Démarrer UIView à la différence de 1 pixel de statusbar

sur iPhone 8 plus il semble bien

enter image description here

sur la différence iPhone X 1px ne se voit pas parce vue regardé de haut

enter image description here

+0

montrer votre code essayé –

+0

@ Anbu.Karthik Utilisation Autoresizing je veux y parvenir. S'il vous plaît voir les images – Ali

Répondre

2

mise à jour pour iPhone X

Auparavant, tous les appareils iPhone avaient un hauteur de la barre d'état de 20pt. Mais sur l'iPhone X, c'est 44pt. Alors soyez prudent lors de la mise en œuvre de votre interface utilisateur.

si vous souhaitez mettre à jour l'interface utilisateur dans mainthread ou appeler viewWillAppear.

CGFloat getstatusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height; 
CGRect modifyFrame = your1PxFrame.frame ; 
modifyFrame.origin.y = getstatusBarHeight ; 
your1PxFrame.frame = modifyFrame; 
+0

Merci frère. Je voulais juste apprendre à propos de l'autoresizing si cela était possible.si non réalisé avec autoresize je vais utiliser le code :) – Ali

+1

@Ali - un certain temps nous avons besoin de remplacer l'interface utilisateur avec l'aide de code, à ma connaissance ici, vous ne pouvez pas définir directement dans Storyboard –

2

Vous devez utiliser l'autolayout!

Avec autolayout and xcode 9 vous pouvez le gérer comme ci-dessous!

Prenez UIView dans votre storyboard ou xib de l'iphone 7 ou 8!

Puis dran et déposez UIView (votre vue pour laquelle vous voulez un espace de pixel) dessus.

Mettez-le comme c'est y devenir 21 pixel.

donnent alors contrainte supérieure de safe area à ce point de vue, et donner d'autres exigent des contraintes comme leader, hauteur fixe arrière, etc.

ci-dessous des captures d'écran pour Référez mieux comprendre!

enter image description here

et les résultats sont les suivants:

iPhone 8 plus:

enter image description here

iPhone X:

enter image description here

+0

mon frère? est lié à autoresizing pas autolayout bro –

+0

ouais c'est pourquoi j'ai écrit dans ma réponse que vous devriez utiliser autolayout! Si le questionneur utilisera autolayout alors c'est la meilleure façon de gérer! @ Anbu.Karthik – Lion

+0

@Lion Application a été développée avec autoresizing. si je le change pour autolayout il a besoin de beaucoup de temps. C'est pourquoi j'ai demandé l'autoresizing. Merci pour votre réponse – Ali