2012-11-08 19 views
5

मैं निम्नलिखित कोड का उपयोग कर एक imageView घुमाना चाहते:क्यों autaayout में CGAffineTransformRotate एनिमेटेड दृश्य को स्थानांतरित करेगा?

[UIView animateWithDuration:.25 animations:^{ 
    self.imageView.transform = CGAffineTransformRotate(self.plusView.transform, M_PI_4); 
}]; 

वायर्ड बात यह है कि यह है: अगर मैं ऑटो लेआउट के बिना इस कोड चलाने के लिए, हर चीज ठीक है। लेकिन ऑटोलायआउट का उपयोग करते समय, छवि दृश्य घूमने से पहले एक कूड़े पिक्सेल को स्थानांतरित करता है, क्यों?

उत्तर

4

एक्सकोड 5 में ऑटो लेआउट का उपयोग करते समय, आपको क्षैतिज केंद्र और छवि के ऊर्ध्वाधर केंद्र को अपने कंटेनर में देखने के लिए बाधा जोड़ने की आवश्यकता है। यदि आप स्टोरीबोर्ड का उपयोग कर रहे हैं, तो यह आसानी से बाधाओं के विकल्पों के साथ किया जा सकता है। यदि आप छवि दृश्य ऑटो-आकार बदलना नहीं चाहते हैं तो आपको बाधाओं के साथ चौड़ाई और ऊंचाई को भी ठीक करने की आवश्यकता होगी।

Pin the center of a view with constraints in Storyboard

Fix the size of a view with constraints in Storyboard

0

मैं प्रतिष्ठा chazzwozzer के जवाब पर टिप्पणी करने से नहीं था (मेरे खाते फेसबुक लॉगिन करने के लिए हाल के परिवर्तन के साथ रीसेट हो गया)। उस जवाब ने मेरे लिए अच्छा काम किया .. उस नियंत्रण को डालकर जिसे एक यूआईवीव में परिवर्तित किया जा रहा था जिस पर अलग-अलग बाधाएं थीं। फिर जिस नियंत्रण को बदल दिया जा रहा था वह उस दृश्य में क्षैतिज और लंबवत केंद्र पर सेट है।

एफवाईआई .. रूपांतरण पर बदलाव बाद में आईओएस 8 पर नहीं हुआ .. केवल आईओएस 7.1 पर।