2010-01-31 6 views
7

मैंने देखा है कि जब आईबी का उपयोग कर और/या एक दृश्य भर के विभिन्न पदों के लिए उन छवियों को एनिमेट एक दृश्य में PNG छवियाँ रखने, छवि कभी कभी एक प्राप्त कर सकते हैं थोड़ा धुंधलाक्यों एक PNG छवि कभी कभी एक दृश्य में अपनी स्थिति के आधार पर धुँधली प्राप्त करता है

ज्यादातर मामलों में मैं छवियों स्थिति के लिए एक पिक्सेल की .5 जोड़कर कलंक उपाय कर सकते हैं।

[lbLiteButton.layer setPosition:CGPointMake(140.5,159.5)]; 

कभी-कभी मुझे ऊपर की तरह x और y दोनों को समायोजित करना होता है। कभी-कभी मुझे केवल x या y समायोजित करना होगा।

मैंने कहीं पढ़ने इस छवि का आकार और कैसे कोर एनीमेशन काम करता है और कुछ आधे पिक्सल के साथ क्या करना के साथ क्या करना है कि याद ... लेकिन मैं नहीं कर सकते लेख कहीं भी मिल !?

".5 पिक्सेल" समाधान के साथ समस्या यह है कि आकार के आधार पर प्रत्येक पीएनजी छवि के लिए यह अलग है, इसलिए आप कस्टम एनीमेशन का पुन: उपयोग नहीं कर सकते क्योंकि आपको इसे प्रत्येक अलग छवि के लिए अनुकूलित करना है।

  1. क्या यह सुनिश्चित करने का कोई तरीका है कि कोई फर्क नहीं पड़ता कि मैं अपनी छवि को कहां रखता हूं या एनिमेट करता हूं, मुझे कोई धुंधली स्थिति नहीं मिलेगी?
  2. क्या किसी के पास इस पर कोई जानकारी है?

धन्यवाद!

+0

आपकी छवि के आयाम क्या हैं? चौड़ाई या ऊंचाई विषम है? –

उत्तर

14

एक दृश्य की परत की position संपत्ति अपने anchorPoint संपत्ति पर आधारित है। डिफ़ॉल्ट रूप से, वह (0.5, 0.5) है, जिसका अर्थ है कि परत का लंगर बिंदु इसके केंद्र में है। यदि आपका दृश्य (और इसकी परत) पिक्सेल चौड़ी या उच्च की एक विषम संख्या है, तो स्थिति के लिए एक अभिन्न मूल्य सेट करने से दृश्य की उत्पत्ति गैर-अभिन्न अंग हो जाएगी, जिससे आप जो धुंधलापन देखते हैं।

इस के आसपास काम करने के लिए, आप दृश्य की वांछित केंद्र स्थिति ले कर, दृश्य की चौड़ाई का आधा घटाकर, उस मान को गोल करने, फिर दृश्य की चौड़ाई को जोड़ने और दोहराने के द्वारा अपनी स्थिति का एक अभिन्न संस्करण पता लगा सकते हैं ऊंचाई के लिए। आप अपने दृश्य की परत (0,0) के लिए anchorPoint भी सेट कर सकते हैं और इसकी उत्पत्ति के आधार पर दृश्य को स्थिति दे सकते हैं।

एक मौका है कि यह पर्यवेक्षण के गलत हस्ताक्षर से भी संबंधित हो सकता है। इसका निदान करने के लिए, आप उपकरण में कोर एनीमेशन उपकरण का उपयोग कर सकते हैं, और रंग Misaligned छवियों का चयन करें विकल्प। इसे किसी भी दृश्य या परतों को रंगना चाहिए जो आपके आवेदन में गैर-पिक्सेल-गठबंधन हैं।

+1

धन्यवाद। हां, समस्या यह थी कि मेरी कुछ छवियों में एक पिक्सेल पहलू अनुपात भी है। जो लोग ठीक काम करते थे, उनके पास भी अनुपात था। एंकर पॉइंट को बदलना (0,0) काम करता है, छवियों के आकार में एक पिक्सेल द्वारा छवियों के आकार को समायोजित करने के लिए, यहां तक ​​कि अनुपात के कार्यों में भी समायोजित करना। (अच्छा अगर आपको पिक्सेल की परवाह नहीं है) I अब कोर एनीमेशन उपकरण का प्रयास करने जा रहा हूं। आपकी मदद के लिए धन्यवाद। – Jonathan

+0

मैंने रंग Misaligned विकल्प की कोशिश की और हाँ, जब भी मैं एक "CAKeyFrameAnimation" करता हूं, यह "misaligned" के रूप में एनिमेटिंग क्या है के दृश्य को हिलाता है। लेकिन स्टार्ट और स्टॉप पोजीशन ठीक है। – Jonathan

2

मैं एक लेबल में धुंधला पाठ के साथ एक समान अनुभव था, और यह एक उपपिक्सेल ऑफसेट होने मेरी लेबल के superview संपन्न हुई थी। तो भले ही उस दृश्य के भीतर का स्थान अभिन्न था, जब उसके माता-पिता के निर्देशांक में समायोजित किया गया था, तो इसका आधा पिक्सेल या ऑफसेट था, जिससे धुंधला हो गया था।

यदि आपको यह कभी-कभी मिल रहा है, हालांकि, यह मामला नहीं हो सकता है। क्या आपका पर्यवेक्षण चारों ओर घूम रहा है, या अजीब स्थिति में है? मैं कहूंगा कि सबसे अच्छी बात यह है कि यह सटीक परिस्थितियों को समझना है जिसके अंतर्गत यह हो रहा है।

1

आईबी में एक बग है जहां कभी-कभी (अक्सर नहीं) बस चारों ओर तत्वों को स्थानांतरित करने से उन्हें अस्पष्ट कर दिया जाएगा - आप इसे अक्सर UILabels और UIImageViews के साथ देखते हैं (हालांकि यह शायद सबसे स्पष्ट है)। मुझे यकीन है कि इसे ऊपर वर्णित बिंदुओं के साथ कुछ तरीकों से करना है, लेकिन फिक्स अक्सर तत्व के लिए स्थान (x, y) निर्देशांक को 0,0 पर सेट करने के लिए होता है, और फिर मूल मानों पर वापस जाता है। यह आम तौर पर इस मुद्दे को हल करता है (फिर से, यह आईबी में है)।