iOS: Mirror content on screen
You can use CGAffineTransformMakeScale with negative values.Like:
CGAffineTransformMakeScale(1.0, -1.0);
This can be applied on the view by:
//Mirror top to bottomview.transform = CGAffineTransformMakeScale(1.0, -1.0);
or
//Mirror Left to Rightview.transform = CGAffineTransformMakeScale(-1.0, 1.0);
CGAffineTransform
is your friend here. Here's some simplified sample code taken form an Xcode Template UIViewController to add a UILabel to a it's view and have that view mirrored. The mirroring is just a side affect of a negative scale. You can do all sorts of things with CGAffineTransform
methods, not just limited to scale.
- (void)viewDidLoad;{ [super viewDidLoad]; UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectZero]; aLabel.text = @"Sample Text"; [aLabel sizeToFit]; //Add it to the center of our UIViewController's View CGRect labelFrame = aLabel.frame; labelFrame.origin.x = floorf((CGRectGetWidth(self.view.frame) - CGRectGetWidth(labelFrame)) / 2); labelFrame.origin.y = floorf((CGRectGetHeight(self.view.frame) - CGRectGetHeight(labelFrame)) / 2); aLabel.frame = labelFrame; //Mirror the UILabel left to right aLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0); //OR Mirror the UILabel top to bottom //aLabel.transform = CGAffineTransformMakeScale(1.0, -1.0); [self.view addSubview:aLabel]; [aLabel release];}