2012-10-10 48 views
9

नियमित UIButtons को अनुकूलित करने के लिए निम्न कोड का उपयोग करने से UIBarButtonItems और टेक्स्ट फ़ील्ड में स्पष्ट बटन भी प्रभावित होते हैं।UIBarButtonItems को प्रभावित किए बिना UIButton के लिए उपस्थिति कैसे सेट करें?

[[UIButton appearance] setBackgroundImage:greenButtonImage forState:UIControlStateNormal]; 

मैं नहीं सब, केवल नियमित दौर रेक्ट बटन पर बाद के तत्वों को अनुकूलित करना चाहते हैं। मुझे उपस्थिति का उपयोग करने का एहसास है जब कॉन्टेन्टेडइन: UIBarButtonItems और UITextField के लिए कस्टम उपस्थिति सेट करने के लिए उपयोग किया जा सकता है, लेकिन मैं इन बटनों को मानक बने रहने की कामना करता हूं। Subclassing यहां एक विकल्प नहीं है क्योंकि इस तरह के एक साधारण कार्य के लिए इसकी आवश्यकता नहीं होनी चाहिए।

एक समान प्रश्न है, लेकिन यह इस मुद्दे को संबोधित नहीं करता है। Why does -[[UIButton appearance] setBackgroundImage] affect the initial appearance of UIBarItem objects and how do you correct it?

+1

मैं विशेष रूप से स्पष्ट पृष्ठभूमि छवि को सेट करके UITextField समस्या को ठीक करने में सक्षम था। हालांकि एक अच्छा समाधान नहीं है। –

+0

आप अपने UIBarButtonItems कैसे प्रारंभ कर रहे हैं? क्या आप "कस्टम व्यू" प्रॉपर्टी को UIButton ऑब्जेक्ट के रूप में सेट कर रहे हैं? यदि आप UIBarButtonItem को बनाने के लिए नमूना कोड प्रदान कर सकते हैं तो मुझे पूरा यकीन है कि मैं मदद कर सकता हूं ... मैं अपने ऐप्स में उपस्थिति प्रॉक्सी और बार बटन/UIButtons के साथ कई अनुकूलन करता हूं और इन मुद्दों को नहीं मिला है। – DiscDev

उत्तर

2

एक समाधान मैंने पहले का उपयोग किया है है करने के लिए नहीं के बराबर बाहर UIButtons के लिए "backgroundImage" संपत्ति एक UINavigationBar के अंदर निहित:

[[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundImage:nil forState:UIControlStateNormal]; 

यह बिना छुए, तो आप अन्य मामलों में UIButtons अनुकूलित करने के लिए अनुमति चाहिए UINavigationBar में UIBarButtonItem के अंदर वाले लोग।