web-dev-qa-db-ja.com

CGPointとCGSizeからCGRectを作成するにはどうすればよいですか?

UIImageViewCGSizeのさまざまなコレクションからCGPointのフレームを作成する必要があります。両方の値は、ユーザーの選択によって常に異なります。では、どのようにしてCGRectCGPointCGSizeから作成できますか?前もって感謝します。

46
inorganik

Objective-Cの2つの異なるオプション:

CGRect aRect = CGRectMake(aPoint.x, aPoint.y, aSize.width, aSize.height);

CGRect aRect = { aPoint, aSize };

スウィフト3:

let aRect = CGRect(Origin: aPoint, size: aSize)
115
Jim

@Jimからの最も優れた回答に基づいて、この方法を使用してCGPointとCGSizeを構築することもできます。したがって、これらは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} };
4
coco
CGRectMake(yourPoint.x, yourPoint.y, yourSize.width, yourSize.height);
3
rooster117

いくつかのシュガー構文を使用できます。例えば:

これは、より読みやすいコードに使用できる構築ブロックのようなものです。

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;
)}
0