आपको केवल सेटडिड्स डिस्प्ले को कॉल करना चाहिए यदि आप UIView के उप-वर्ग में drawRect को ओवरराइड करते हैं जो मूल रूप से एक कस्टम दृश्य स्क्रीन पर कुछ चित्रकारी करता है, जैसे रेखाएं, छवियां, या आयताकार जैसे आकार।
तो आपको सेटएड्स डिस्प्ले को कॉल करना चाहिए जब आप कुछ चरों में परिवर्तन करते हैं, जिस पर यह चित्र निर्भर करता है और उस परिवर्तन का प्रतिनिधित्व करने के लिए देखने के लिए, आपको इस विधि को कॉल करने की आवश्यकता है जो आंतरिक रूप से घटकों को आकर्षित करने और पुन: निकालने के लिए कॉल देगा।
जब आप एक छवि दृश्य या UIButton को सबव्यू के रूप में जोड़ते हैं या किसी सबव्यू में परिवर्तन करते हैं, तो आपको इस विधि को कॉल करने की आवश्यकता नहीं है।
उदाहरण:
आप एक ऐसा दृश्य एक चलती चक्र से पता चलता है, या तो आप उसे स्पर्श करके ले जाते हैं, या टाइमर आधारित एनीमेशन हो सकता है। इसके लिए, आपको एक कस्टम दृश्य की आवश्यकता होगी जो दिए गए केंद्र और दिए गए त्रिज्या के साथ एक सर्कल खींचती है। इन्हें आवृत्ति चर के रूप में रखा जाता है जिन्हें सर्कल को अपने केंद्र को बदलकर या इसके त्रिज्या को बढ़ाकर इसे बड़ा करने के लिए संशोधित किया जाता है।
अब इस मामले में या तो आप इन चर (केंद्र या त्रिज्या) को लूप और टाइमर में संशोधित करेंगे या स्पर्श में आपकी उंगलियों से हो सकते हैं एंडेड और स्पर्श किए गए तरीके। इस संपत्ति में परिवर्तन को दर्शाने के लिए आपको इस दृश्य को फिर से निकालना होगा जिसके लिए आप setNeedsDisplay को कॉल करेंगे।
स्रोत
2012-05-30 14:32:23
एक ही परत के फ्रेम को बदलने या मेरे दृश्य उपclass के अंदर देखने के बाद ही? –