Définir l'origine du cadre dans iOS
Je suis en train de définir l'origine de l'image par programmation.
Method1:
button.frame.origin.y = 100;
Méthode 2:
CGRect frame = button.frame;
frame.origin.y = 100;
J'ai essayé la méthode 1, mais il ne fonctionne pas(affichant un message d'erreur indiquant que l'Expression n'est pas cessible). La méthode 2 est un de travail. Pourquoi est-ce donc?
Besoin de conseils sur ce que je suis en train de faire.
source d'informationauteur lakesh
Vous devez vous connecter pour publier un commentaire.
La raison pour laquelle vous ne pouvez pas faire la méthode #1 est parce que d'un cadre individuel propriétés sont en lecture seule. Cependant, la totalité de l'image elle-même est accessible en écriture/assignable, ainsi, vous pouvez faire la méthode #2.
Vous pouvez même faire des trucs comme ça:
Vous savez
button.frame.origin.y
renvoyer une valeur.si vous utilisez ce si vous obtenez cette erreur...
Expression n'est pas cessible.
C'est donc de manière correcte
sinon vous pouvez faire comme ceci...
C'est parce que si vous étiez en mesure de modifier directement une image de l'origine ou de la taille, vous permettrait de contourner la méthode de définition de UIView du cadre de la propriété. Ce serait mauvais pour plusieurs raisons.
UIView aurait aucune chance d'être informé des modifications du cadre. Mais il doit savoir à propos de ces changements pour être en mesure de mettre à jour la sous-vues ou de se redessiner.
est égal à l'appel suivant:
dans lequel
[button getFrame]
vous donne le copiéCGRect
.Vous essayez de définir une variable d'une structure d'une structure. Il n'y a pas de pointeur de la
UIView
à la structure (comme c'est une baseC struct
ne peut donc pas être souligné). par conséquent, copié à la place.Donc, fondamentalement, vous êtes la copie de la structure et de la configuration. Mais, ça ne marche pas comme ça.