2011-12-20 13 views
19

मैं जानना चाहता हूं कि UIView की सामग्री को उसी डिवाइस में फ़्लिप करना संभव है; जिसका मतलब बाहरी मॉनीटर पर नहीं बल्कि डिवाइस पर ही है।आईओएस: स्क्रीन पर मिरर सामग्री

मैंने Google पर थोड़ा सा खोज की है, लेकिन मुझे लगता है कि बाहरी स्क्रीन के लिए मैं सब कुछ पा सकता हूं।

+0

मेरे लिए 'फ्लिप' परिभाषित करें। – Jessedc

+1

शीर्षक के रूप में, दर्पण। –

उत्तर

41

आप नकारात्मक मूल्यों के साथ CGAffineTransformMakeScale का उपयोग कर सकते हैं। तरह:

CGAffineTransformMakeScale(1.0, -1.0); 

यह द्वारा दृश्य पर लागू किया जा सकता:

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

या

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

CGAffineTransform अपने दोस्त यहाँ है। यहां कुछ सरल नमूना कोड लिया गया है जो एक एक्सकैब टेम्पलेट UIViewController को एक यूआईएलएबल को इसके दृश्य में जोड़ने के लिए तैयार किया गया है और उस दृश्य को प्रतिबिंबित किया गया है। मिररिंग सिर्फ एक नकारात्मक पैमाने पर एक पक्ष प्रभाव है। आप CGAffineTransform विधियों के साथ सभी प्रकार की चीजें कर सकते हैं, केवल स्केल तक सीमित नहीं हैं।

- (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

यह नहीं होना चाहिए // UILabel को मिरर दाएं 'aLabel.transform = CGAffineTransformMakeScale (-1.0, 1.0); '? – Gujamin

संबंधित मुद्दे