2010-05-07 5 views
21

UIBarButtonItems की क्षैतिज स्थिति कोई समस्या नहीं है, मैं बस निश्चित/लचीली अंतरिक्ष वस्तुओं के साथ अंतरिक्ष पैड कर सकते हैं। हालांकि, मैं टूलबार आइटम को लंबवत समायोजित नहीं कर सकता। यूआईटीूलबार में कोई संरेखण संपत्ति नहीं है, और UIBarButtonItem का फ्रेम सेट करने का कोई तरीका नहीं है।आप UIToolbar इंस्टेंस द्वारा निहित UIBarButtonItem के फ्रेम या लंबवत संरेखण को कैसे समायोजित करते हैं?

मुझे ऐसा करने की ज़रूरत है क्योंकि हम initWithImage का उपयोग करके बनाए गए कस्टम आइकन का मिश्रण और initWithBarButtonSystemItem के साथ बनाए गए मानक आइकन का उपयोग कर रहे हैं। कस्टम आइकन ठीक से केंद्रित नहीं हो रहे हैं (वे सिस्टम आइकन के सापेक्ष ऊपर की ओर ऑफसेट हैं, जो ठीक से केंद्रित हैं), इसलिए टूलबार अजीब दिखता है।

+2

मैं आपको सलाह देता हूं 1) कुछ कस्टम का उपयोग करें और टूलबार नहीं; या 2) छवियों को ठीक करें क्योंकि वे सही ढंग से समायोजित करने के लिए बहुत आसान होंगे। –

+0

1 मेरे लिए एक विकल्प नहीं है। मुझे दृश्य डिजाइन निर्णय नहीं मिलते हैं। मुझे यह तय नहीं होता कि यूआई कैसे दिखता है, बटन के लिए क्या प्रभाव हैं, या वे कहां स्थित हैं। 2 ऐसा कुछ है जो मैं संभवतः यदि संभव हो तो टालना चाहूंगा, क्योंकि इसका मतलब है कि दृश्य डिजाइनर को वापस काम करना। बार-बार छवियों को बार-बार पास करने के लिए थकाऊ है, इसे ट्विक करने के लिए और फिर परीक्षण और त्रुटि के माध्यम से परिणामों की जांच करें। इस बात की कोई गारंटी नहीं है कि इससे समस्या ठीक हो जाएगी ... भले ही हम आइकन का आकार बदल दें, UIKit अभी भी इसे स्थानांतरित कर सकता है। कोई अन्य सिफारिशें? – akaii

+1

पाठ के लिए इसे कैसे करें पर कोई विचार? Imageinsets समाधान पाठ के लिए काम नहीं करता है। – easythrees

उत्तर

1

ऐसा करने का कोई आसान, साफ तरीका प्रतीत नहीं होता है, इसलिए मैं एक बदसूरत लेकिन कार्यात्मक हैक: घोंसले के साथ चला गया। मैंने एक UIVoolbar में बटन को एक यूआईवीव में फंस लिया जिसे मैंने UIBarButtonItem के रूप में मूल टूलबार पर initWithCustomView का उपयोग करके सेट किया था। दूसरा UIToolbar UIView के भीतर स्वतंत्र रूप से स्थानांतरित हो सकता है, और वास्तविक आइकन UIBarButtonItem के सभी गुणों को बरकरार रखता है।

उह।

3

छवि UIBarItem की संपत्ति संपत्ति?

34

हां, imageInsets मेरे लिए ठीक काम किया!

float topInset = 4.0f; 
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, -topInset, 0.0f); 

छवि 4 पिक्सेल नीचे ले जाती है।

से बचें यह:

float topInset = 4.0f; 
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, 0.0f, 0.0f); 

छवि 4 पिक्सल ले जाता है नीचे (लेकिन छवि ऊँचाई तो यह संकुचित लग रहा है rescales)।

+0

देखकर खुशी हुई कि मैं इस मुद्दे के साथ अकेला नहीं हूं। हालांकि, "topInset = 2.0f" मेरे लिए काम किया। –

+0

धन्यवाद वास्तव में आपने मेरा समय बचाया –

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