J'ai besoin de créer un cadre pour un UIImageView
partir d'une collection variable de CGSize
et CGPoint
, les deux valeurs seront toujours différentes en fonction des choix de l'user. Alors, comment puis-je faire un CGRect
former un CGPoint
et un CGSize
? Merci d'avance.
Deux options différentes pour Objective-C:
CGRect aRect = CGRectMake(aPoint.x, aPoint.y, aSize.width, aSize.height); CGRect aRect = { aPoint, aSize };
Swift 3:
let aRect = CGRect(origin: aPoint, size: aSize)
En se basant sur la meilleure réponse de @Jim, on peut aussi build un CGPoint et un CGSize en utilisant cette méthode. Donc, ce sont aussi des façons valides de faire un CGRect:
CGRect aRect = { {aPoint.x, aPoint.y}, aSize }; CGrect aRect = { aPoint, {aSize.width, aSize.height} }; CGRect aRect = { {aPoint.x, aPoint.y}, {aSize.width, aSize.height} };
CGRectMake(yourPoint.x, yourPoint.y, yourSize.width, yourSize.height);
vous pouvez utiliser une syntaxe de sucre. Par exemple:
C'est quelque chose comme un bloc de construction que vous pouvez utiliser pour un code plus lisible:
CGRect rect = ({ CGRect customCreationRect //make some calculations for each dimention customCreationRect.origin.x = CGRectGetMidX(yourFrame); customCreationRect.origin.y = CGRectGetMaxY(someOtherFrame); customCreationRect.size.width = CGRectGetHeight(yetAnotherFrame); customCreationRect.size.height = 400; //By just me some variable in the end this line will //be assigned to the rect va customCreationRect; )}