CGRect Center for iPad

I am creating an image frame using CGRect. I want to center the created rectangle.

I looked here, as well as in the Apple documentation for the best way to do this, and found CGRectGetMidY and CGRectGetMidX that get the center coordinates.

When I try to implement this in my own code, I run into problems. I get the size of the property not found on the object type error UIIMageView

#import "MyViewController.h" @interface MyViewController () @end @implementation MyViewController @synthesize mySignatureImage; @synthesize lastContactPoint1, lastContactPoint2, currentPoint; @synthesize imageFrame; @synthesize fingerMoved; @synthesize navbarHeight; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor lightGrayColor]; CGRect mySignatureImageFrame = CGRectMake( CGRectGetMidX(self.view.frame) - (mySignatureImage.size.width/ 2.0), CGRectGetMidY(self.view.frame) - (mySignatureImage.size.height / 2.0), image.size.width, image.size.height); #import <UIKit/UIKit.h> @interface MyViewController : UIViewController <UIAlertViewDelegate> @property (nonatomic, strong) UIImageView *mySignatureImage; @property (nonatomic, assign) CGPoint lastContactPoint1, lastContactPoint2, currentPoint; @property (nonatomic, assign) CGRect imageFrame; @property (nonatomic, assign) BOOL fingerMoved; @property (nonatomic, assign) float navbarHeight; @property (strong, nonatomic) NSManagedObjectContext *managedObjectContext; 
+7
ios objective-c uiimage cgrect
source share
4 answers

Assuming image is of type UIImage , then:

 CGRect imageFrame = CGRectMake( CGRectGetMidX(self.view.frame) - (image.size.width / 2.0), CGRectGetMidY(self.view.frame) - (image.size.height / 2.0), image.size.width, image.size.height); 

Assuming imageView is of type UIImageView , then:

 CGRect imageFrame = CGRectMake( CGRectGetMidX(self.view.frame) - CGRectGetMidX(imageView.frame), CGRectGetMidY(self.view.frame) - CGRectGetMidY(imageView.frame), CGRectGetWidth(imageView.frame), CGRectGetHeight(imageView.frame)); 
+10
source share

You do not need to calculate the center point, since it is available for viewing in any case:

 CGRect superviewBounds = superview.bounds; imageView.center = CGPointMake(CGRectGetMidX(superviewBounds), CGRectGetMidY(superviewBounds)); 
+7
source share
 - (void)viewDidAppear:(BOOL)animated { img.center = CGPointMake(CGRectGetMidX([self.view bounds]), CGRectGetMidY([self.view bounds])); } /*write code in viewDidApper */ 
+1
source share
 CGPoint (^CGRectGetCenter)(CGRect) = ^(CGRect rect) { return CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect)); }; 

Example: Mirand's answer above

0
source share

All Articles