2015-08-09 7 views
15

मैं एक ऐप के लिए डे और नाइट मोड के साथ काम कर रहा हूं। समस्या यह है कि, जब दृश्य के पृष्ठभूमि रंग को सेट किया जाता है और फिर इसे "पॉपओवर के रूप में प्रस्तुत करने" के रूप में उपयोग किया जाता है, वहां छोटे सफेद कलाकृतियां होती हैं (चित्र देखें)UIPopoverPresentationController पृष्ठभूमि रंग को पूरी तरह से रंगीन कैसे करें?

क्या इसे ठीक करने का कोई आसान तरीका है? क्या मुझे अपना खुद का UIView लिखना पड़ सकता है?

enter image description here

उत्तर

15

आप UIPopoverPresentationController के backgroundColor सेट कर सकते हैं। यदि वह पर्याप्त नहीं है, तो आपको अपने पॉपओवर के UIPopoverBackgroundView को कस्टमाइज़ करना होगा। यह आपको छोटे त्रिकोण सहित संपूर्ण पॉपओवर पृष्ठभूमि का नियंत्रण देता है।

+0

क्षमा करें, आप मुझे एक छोटे से उदाहरण या गाइड दे मन होगा। मुझे popoverBackgroundViewClass के साथ बिंदु नहीं मिला। इंटरफेस बिल्डर में मेरे पास मेरा UIViewController है जिसे पॉपओवर के रूप में प्रदर्शित किया जाना चाहिए। मैंने एक कक्षा लागू की जो UIPopoverBackgroundView से विरासत में मिली है। एक और दृश्य नियंत्रक में एक बटन है जो पॉपओवर को segue द्वारा कॉल करता है। "ReadyForSegue" विधि में मैं सेटिंग्स config.popoverPresentationController हूँ .popoverBackgroundViewClass = CustomPopoverBackgroundView.self। दया – Mario

+0

का सम्मान करता है यह अनिवार्य अपवाद के कारण "*** टर्मिनिंग ऐप" के साथ हमेशा दुर्घटनाग्रस्त हो जाता है, एनएसआईएन इंटरनेशनल कॉन्सेसिस्टेंसी एक्सेप्शन 'कारण:' - [यूआईपीओवरवर बैकग्राउंड व्यू सामग्रीव्यूइन्सनेट] उपclassers द्वारा लागू किया जाना चाहिए। " – Mario

+3

"क्षमा करें, क्या आप मुझे थोड़ा उदाहरण या गाइड दे रहे हैं" निश्चित: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch09p476popovers/ch22p751popovers/MyPopoverBackgroundView.swift – matt

2

मैट के उत्तर को पूरक करने के लिए यहां कुछ कोड दिया गया है।

popoverController.popoverPresentationController?.backgroundColor = myColor 

या

self.navigationController?.popoverPresentationController?.backgroundColor = myColor 
संबंधित मुद्दे