Подтвердить что ты не робот

Как создать CGRect из CGPoint и CGSize?

Мне нужно создать фрейм для UIImageView из различного набора CGSize и CGPoint, оба значения всегда будут отличаться в зависимости от выбора пользователя. Итак, как я могу сделать форму CGRect a CGPoint и a CGSize? Заранее благодарю вас.

4b9b3361

Ответ 1

Две различные опции для 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)

Ответ 2

Основываясь на самом превосходном ответе от @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} };

Ответ 3

CGRectMake(yourPoint.x, yourPoint.y, yourSize.width, yourSize.height);

Ответ 4

вы можете использовать синтаксис сахара. Например:

Это что-то вроде строительного блока, который вы можете использовать для получения более читаемого кода:

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