2011-12-20 32 views
19

Tôi muốn biết nếu có thể lật nội dung của một UIView trong cùng một thiết bị; có nghĩa là không theo dõi bên ngoài mà trên chính thiết bị.iOS: Phản ánh nội dung trên màn hình

Tôi đã tìm kiếm một chút trên google, nhưng tất cả những gì tôi có thể tìm thấy là màn hình bên ngoài.

+0

Xác định 'lật' cho tôi. – Jessedc

+1

Như trong tiêu đề, gương. –

Trả lời

41

Bạn có thể sử dụng CGAffineTransformMakeScale với giá trị âm. Giống như:

CGAffineTransformMakeScale(1.0, -1.0); 

này có thể được áp dụng trên xem bằng cách:

//Mirror top to bottom 
view.transform = CGAffineTransformMakeScale(1.0, -1.0); 

hoặc

//Mirror Left to Right 
view.transform = CGAffineTransformMakeScale(-1.0, 1.0); 
2

CGAffineTransform là bạn của bạn ở đây. Dưới đây là một số mẫu mã đơn giản được thực hiện dưới dạng một Ucode mẫu UIViewController Xcode để thêm một UILabel vào một khung nhìn của nó và có được xem nhân đôi. Phản chiếu chỉ là một ảnh hưởng phụ của một thang âm. Bạn có thể làm đủ mọi thứ với các phương thức CGAffineTransform, không chỉ giới hạn ở quy mô.

- (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]; 
} 
+3

Không nên là // Gương nhãn UILabel sang trái sang phải 'aLabel.transform = CGAffineTransformMakeScale (-1.0, 1.0);'? – Gujamin

Các vấn đề liên quan