Définir CGRectmake avec CGPoint et/ou CGSize
C'est une question très simple dont je n'arrive pas à trouver la réponse.
Comment faire :
CGRectMake(1, 3, size)
ou
CGRectMake(pointB, size)
ou
CGRectMake(pointB, size.width, size.height)
au lieu de
CGRectMake(self.someview.frame.origin.x, self.someview.frame.origin.y, self.someotherview.frame.size.width, self.someotherview.frame.size.height)
??
Merci!!!! 🙂
EDIT:
La méthode CGRectmake
prend CGFloat
. Je voudrais qu'il prenne CGSize
, et/ou CGpoint
comme arguments de la méthode.
double possible de Comment puis-je créer un CGRect à partir d'un CGPoint et CGSize?
OriginalL'auteur Plot | 2013-01-28
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est ce que vous avez à l'esprit:
Mais note de la discussion ici:
Pourquoi utiliser des fonctions comme CGRectMake?
Ce type de composé de la syntaxe littérale me semble beaucoup plus facile à lire et à écrire, bien que les fonctions ont l'avantage lorsqu'il s'agit de futureproofing ( + de saisie semi-automatique).
mise à jour
voir aussi cette plus récente q&a:
CGRect de syntaxe, je n'ai pas vu avant
OriginalL'auteur foundry
CGRectMake(1, 3, taille):
CGRectMake(pointB, taille):
CGRectMake(pointB, taille.la largeur, la taille.hauteur):
Un CGRect ressemble à ceci:
Et CGPoint et CGSize juste ressembler à ceci:
CGRectMake est la fonction suivante:
Ainsi, au lieu de:
Vous pouvez simplement écrire:
Si vous avez envie de créer votre propre CGRectMake, n'hésitez pas à le faire:
Mais il n'y a aucun moyen que vous pouvez modifier les arguments d'une fonction accepte.
se comporte de la façon qu'il a été défini, pas de la manière que vous aimeriez qu'il se comporter.
CGRectMake
tout simplement ne fonctionne pas de cette façon, il n'est pas possible de changer la façon dont il fonctionne. Vous pouvez écrire votre propre fonction si vous le souhaitez,MyCGRectMake
qui prend un point et une taille en paramètre, mais il n'y a aucun moyen que vous pouvez modifier les paramètres deCGRectMake
.Ok merci. Je pense que j'ai vu mon patron le faire une fois, et je ne me souviens pas comment...
Vous pouvez définir une macro, mais vous auriez encore de le nommer différemment
CGRectMake
, sinon la macro de manière récursive d'appel lui-même qui mène à une erreur de compilation.Ahhh oui bonne idée!!!! Je vais essayer ça 🙂 merci !
OriginalL'auteur Mecki