2017-08-08 1 views
1

Je fais une forme de barre de progression afin que vous puissiez voir combien de tours dans un jeu l'utilisateur est. J'ai fait tourner dans des problèmes avec UIImages que je redimensionnées en utilisant:Conflits entre frame.width et les contraintes (je pense)

self.progBar.frame.size.width = 50 (for example) 

Lorsque je modifie l'image dans un élément adjacent UIImage puis les changements de largeur progBar en même temps. Après des heures de recherche, j'en suis arrivé à la conclusion qu'il se remet à la valeur de contrainte d'origine. J'ai alors fait un IBOutlet et ai changé la constante à ce que la largeur devrait être à ce moment mais elle restaure encore à la largeur originale de contrainte.

Je sais que je n'ai pas inclus de code spécifique, mais c'est parce que je suis plus curieux de savoir si je me rapproche de tout cela et frame.size est la bonne façon de procéder? J'ai enlevé complètement la barre de progression pour savoir mais j'aimerais apprendre pour la prochaine fois.

Toute discussion serait grandement appréciée.

+0

Vous avez raison que le mélange * cadres * et * contraintes * peut causer des conflits, mais il semble que vous prenez la bonne direction. En fonction de votre message, vous avez défini des contraintes de mise en page automatique dans IB/Storyboard, vous avez assigné une contrainte 'Width' à un IBOutlet, puis dans le code, vous avez défini le' .constant' de cette contrainte? Si c'est le cas, mais que votre vue est toujours "réinitialisée", il semble que vous ayez maintenant des contraintes conflictuelles ... Avez-vous des erreurs/avertissements dans la console de débogage lorsque vous essayez cela? – DonMag

+0

Je l'ai recréé mais il n'y a pas eu d'erreur. Je suis content d'être sur la bonne voie, peut-être que je comprends plus que ce que j'ai réalisé! Merci pour votre aide – Klowne

Répondre

0

les contraintes l'emportent sur le cadre changeant ... il suffit d'utiliser ce avant de changer le cadre

someView.translatesAutoresizingMaskIntoConstraints = true 

lire ici de docs de pommes translatesAutoresizingMaskIntoConstraints

+0

Parfait - cela a fonctionné! Après des heures de google, cela ne s'est jamais produit une seule fois, vous êtes géniaux! Une idée de pourquoi cela fonctionne, ou qu'est-ce que ça fait vraiment? Je présume que les contraintes correspondent aux changements que nous avons apportés au cadre? A partir de là, je suppose également que les cadres sont en fait aussi des masques? Soufflé mon esprit ... – Klowne

+0

J'ai ajouté un lien de docs apple à la réponse. – DeyaEldeen

+0

Doh! Pourquoi je n'ai pas regardé ça. Merci pour le suivi – Klowne