2010-05-29 7 views
5

के बारे में स्केल UIView मैं UIView के स्केलिंग को एनिमेट करना चाहता हूं, लेकिन इसके केंद्र के बारे में नहीं: एक अलग बिंदु के बारे में।आईफोन: एक विशिष्ट बिंदु

अंधेरे में एक शॉट के रूप में, मैंने CGAffineTransforms की एक श्रृंखला का उपयोग करके दृश्य, स्केलिंग, फिर अनुवाद का अनुवाद करने का प्रयास किया। लेकिन यह काम नहीं करता है: यह अभी भी केंद्र के बारे में है।

कोई भी यह कैसे जानता है?

बहुत बहुत धन्यवाद।

उत्तर

12

अपनी परियोजना के लिए क्वार्ट्ज ढांचे जोड़ें और क्वार्ट्ज हैडर

#import <QuartzCore/QuartzCore.h> 

तो आप (जो चारों ओर एनिमेशन आधारित हैं) आपके विचार का लंगर बिंदु निर्धारित कर सकते हैं जैसे कि आयात अंक 0,0 के साथ 0 और 1 के बीच मूल्यों हैं कि,

myView.layer.anchorPoint = CGPointMake(0, 0); 

नोट शीर्ष iPhone

+1

अगर यह मददगार था के रूप में दिए मेरी प्रतिक्रिया अंकन करने पर विचार करें पर छोड़ दिया जा रहा है। – RunLoop

+2

बहुत बहुत धन्यवाद; यह वास्तव में काम करता है। एक अनुवर्ती समस्या, हालांकि: मैंने जो नहीं कहा वह यह है कि मैं "उछाल" प्रभाव के लिए स्केलिंग का उपयोग कर रहा हूं। प्रश्न में दृश्य थोड़ा सा हो जाता है, फिर उसके सामान्य आकार में फैलता है। "एंकरपॉइंट" दृष्टिकोण का उपयोग उचित रूप से दृश्य को कम करता है, लेकिन जब मैं फिर से दृश्य को बढ़ाता हूं (ट्रांसफॉर्म के लिए पहचान मैट्रिक्स का उपयोग करके), संपूर्ण दृश्य थोड़ा (अनुवादित) स्थानांतरित हो गया है। क्या कोई तरीका है कि मैं उस दृश्य को दोहराने योग्य, एंकरपॉइंट-स्वतंत्र फैशन में अपने मूल स्थान पर बहाल करने के लिए प्राप्त कर सकता हूं? धन्यवाद! –

+0

क्या आसान हो सकता है बस अपने व्यू के फ्रेम की उत्पत्ति और आकार को अपने अंत को प्रतिबिंबित करने और बिंदु शुरू करने और इसे एनीमेशन में शामिल करने के लिए सेट करना आसान है। मुझे यह एक आसान तरीका मिला है। – RunLoop