How do I create a CGRect from a CGPoint and CGSize?

后端 未结 4 437
攒了一身酷
攒了一身酷 2021-02-01 01:22

I need to create a frame for a UIImageView from a varying collection of CGSize and CGPoint, both values will always be different depending

相关标签:
4条回答
  • 2021-02-01 01:45
    CGRectMake(yourPoint.x, yourPoint.y, yourSize.width, yourSize.height);
    
    0 讨论(0)
  • 2021-02-01 01:45

    you can use some sugar syntax. For example:

    This is something like construction block you can use for more readable code:

    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 讨论(0)
  • 2021-02-01 01:48

    Two different options for 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)
    
    0 讨论(0)
  • 2021-02-01 02:00

    Building on the most excellent answer from @Jim, one can also construct a CGPoint and a CGSize using this method. So these are also valid ways to make a 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} };
    
    0 讨论(0)
提交回复
热议问题