2009-02-15 15 views
8

कोई भी इस बनाने के लिए कोड है?अनुकूलित UIAlertView

मुझे टेक्स्टफील्ड की परवाह नहीं है, यह एक ग्रिड में बटन है (अधिमानतः पाठ के बजाय छवियों के साथ)।

उत्तर

27

मुझे लगता है कि आपकी सबसे अच्छी शर्त यूआईएलर्ट दृश्य को अनुकूलित करना और कस्टम दृश्य बनाना स्वयं को भूलना है।

एक के लिए, आप वास्तव में क्या दिखा रहे हैं के "अलर्ट" नहीं है तो यह क्या UIAlertView के लिए डिज़ाइन किया गया है करने के लिए काउंटर है। इसका मतलब यह है कि आप उपयोगकर्ता पर यूआई प्रतिमान बदल रहे हैं जो कभी भी एक अच्छा विचार नहीं है।

दूसरा, यूआईएलर्टव्यू को कोशिश करने और उसे करने के लिए इसे प्राप्त करने के लिए कस्टम दृश्य को एनिमेट करना बहुत आसान होगा।

+3

इतना ही नहीं, लेकिन UIAlertView को कस्टमाइज़ करने का प्रयास करना उन चीजों में से एक है जो आपके ऐप को लगातार ऐप्पल द्वारा अस्वीकार कर सकते हैं। –

4

इसके लिए कोई निर्मित घटक नहीं हैं। UIAlertView में एचआईजी दस्तावेज़ के अनुसार टेक्स्ट और बटन होना चाहिए।

आपको अपना खुद का दृश्य बनाना होगा और इसमें नियंत्रण जोड़ना होगा। एसडीके में हेड्सअपयूआई उदाहरण दिखाता है कि ओवरले के रूप में एक कस्टम मेनू-जैसे दृश्य कैसे दिखाना है।

उम्मीद है कि मदद करता है।

11

सबसे पहले आपको अपने नियंत्रण को समायोजित करने के लिए अलर्ट बॉक्स को बड़ा करने की आवश्यकता है, फिर भी इसे केंद्र में रखा जाना चाहिए।

इसके लिए, फ्रेम आकार को सेट करने के बजाय, आपका संदेश टेक्स्ट "\ n" s necc के रूप में है। उदाहरण:

alert = [[UIAlertView alloc] initWithTitle:@"Rate this picture." 
message:@"Tap a star to rate.\n\n\n\n " /*------ look at here!!----*/ 
delegate:self 
cancelButtonTitle:nil 
otherButtonTitles:nil]; 

फिर अलर्टव्यू के लिए UIAlertViewDelegate का उपयोग करें।

इसके ओवरराइड, व्यूविल्लएपियर: अपने बटन जोड़ें और वांछित स्थिति पर अपने फ्रेम मैन्युअल रूप से सेट करें।

या: एक दृश्य नियंत्रक के साथ एक पूरे दृश्य बनाते हैं, और इस तरह के चेतावनी बॉक्स करने के लिए दृश्य जोड़ने: यह आपकी मदद :)

मैं चेतावनी उपयोग कर रहा हूँ में आ जाएगा

[myalertview addSubvew:mycomplexalert]; 

आशा

iOS 7 के लिए, कॉम के साथ अपने स्वयं दृश्य बनाते हैं: स्टार छवियों, चहचहाना, अमेरिकन प्लान प्रतिक्रिया आदि

अद्यतन iOS7 साथ रेटिंग इनपुट के लिए बॉक्स ponents alertview के गौण दृश्य के रूप में सेट और:

[alert setValue:imageView forKey:@"accessoryView"]; 

इसके thats सरल :-)

+1

"\ n \ n \ n \ n" हैक वर्तमान आईओएस 7 बीटा 1 रिलीज के साथ काम नहीं कर रहा है! मुझे यकीन नहीं है कि यह अंतिम आईओएस 7 में बदल जाएगा .. – Raphael

+0

आईओएस 7 के लिए, अपना खुद का दृश्य बनाएं और इसे अलर्टव्यू के एक्सेसरी व्यू के रूप में सेट करें: [अलर्ट सेट वैल्यू: imageView forKey: @ "accessoryView"]; –

+0

मुझे लगता है कि "accesoryView" सार्वजनिक रूप से सुलभ क्यों नहीं हो सकता है। तो यह भविष्य के संस्करणों में तोड़ सकता है या ऐप्पल द्वारा खारिज कर दिया जा सकता है। – Raphael

6

This tutorial को शामिल किया गया UIAlertView उपवर्ग के लिए कैसे एक इनपुट पाठ बॉक्स प्राप्त करने के लिए। यह बताता है कि दृश्य को कैसे बढ़ाया जाए, सबव्यूज़ (जैसे टेक्स्ट बॉक्स या इमेज) जोड़ें और स्क्रीन पर बॉक्स को ऊपर ले जाने के लिए एक ट्रांसफॉर्म करें।

+0

यह दृश्य के आकार को बदलने के तरीके पर नहीं जाता है, लेकिन टेक्स्टबॉक्स को जोड़ने और दर्ज की गई सामग्री का उपयोग करने में यह सहायक होता है इसे में। – sasquatch

6

मैंने लगभग पिक्सेल सही UIAlertView प्रतिस्थापन लिखा है, जो भी पूरी तरह कॉन्फ़िगर करने योग्य है।CODialog पर एक नज़र डालें यदि यह आपकी आवश्यकताओं के अनुरूप है।

+0

यह बहुत बढ़िया @ एरिक एग्नेर है .. हालांकि मुझे अभी एक पुरानी (आईओएस 6) परियोजना मिली है जो आपकी लाइब्रेरी का उपयोग करती है और हमें इसे आईओएस 7 में माइग्रेट करने की आवश्यकता है .. आपकी लाइब्रेरी आईओएस 6 के रूप/अनुभव का उपयोग करती है .. कोई विचार है कि मैं इसे कैसे अपग्रेड कर सकता हूं आईओएस 7 की तरह दिखने/महसूस करने के लिए? – abbood

+0

@abbood बस ड्राइंग विधियों को ओवरराइड करें –

+0

@ यूघ मैन जो कोड की बहुत सी रेखाएं हैं .. क्या आपको पता है कि सेब एक ऐप स्वीकार करेगा, जिसमें आपकी लाइब्रेरी है क्योंकि वे केवल आईओएस 7 के खिलाफ संकलित कोड स्वीकार करेंगे? – abbood

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