2012-12-24 6 views
6

टूलबार की पृष्ठभूमि को हटाने के बाद, एक छवि मास्क के साथ, एक छाया रेखा अभी भी टूलबार से ऊपर बनी हुई है। हम इससे कैसे छुटकारा पा सकते हैं? जैसा कि आप नीचे दी गई छवि से देख सकते हैं, मैं टूलबार और बटन का उपयोग करना चाहता हूं लेकिन पृष्ठभूमि या शीर्ष छाया नहीं।टूलबार की शीर्ष छाया को हटाने या छिपाने के लिए कैसे करें

const float colorMask[6] = {222, 255, 222, 255, 222, 255}; 
UIImage *_img = [[UIImage alloc] init]; 
UIImage *_maskedImage = [UIImage imageWithCGImage:CGImageCreateWithMaskingColors(_img.CGImage, colorMask)]; 
[self.navigationController.toolbar setBackgroundImage:_maskedImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; 

Toolbar top shadow after hiding background with image mask

+0

अपने प्रश्न को उत्तर में संपादित न करें, यह अब और समझ में नहीं आता है। अपने स्वयं के प्रश्न का उत्तर देना ठीक है (आप अपना खुद का जवाब भी स्वीकार कर सकते हैं)। – jrturton

+0

@jrturton ओह, ठीक है धन्यवाद। मैं "अपने स्वयं के प्रश्न का उत्तर" का उपयोग करने में हिचकिचाहट; यकीन नहीं था। 'टूलबार' के लिए 'setShadowImage' संपत्ति ने मुझे बेदखल कर दिया क्योंकि यह' UIToolbar' के अंतर्गत है; डेवलपर दस्तावेज में। –

उत्तर

5

इस लाइन जोड़े भी

[toolbar setShadowImage:_maskedImage forToolbarPosition:UIToolbarPositionAny]; 

दो महत्वपूर्ण सूचनाएं:

  1. आप पृष्ठभूमि छवि को भी सेट करना होगा, अन्यथा यह कुछ भी नहीं करेगा।
  2. यह iOS के लिए है 6 + अन्य उत्तर की
+0

क्या आप अपना कोड प्रारूप सही कर सकते हैं, इसलिए यह कोड नमूना क्षेत्र में दिखाई देता है। पढ़ने के लिए आसान बनाता है। – Popeye

+0

सुधारित किया गया। –

+0

आईओएस 7 पर मेरे लिए काम नहीं किया। – natbro

2

पहले यह यह आपके .m फ़ाइल bellow की तरह में आयात अपनी परियोजना में और बाद QuartzCore/QuartzCore ढांचे जोड़ें ...

#import <QuartzCore/QuartzCore.h> 

और सिर्फ इस bellow कोड जोड़ने के बाद ...

yourToolBar.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); 

    yourToolBar.layer.shadowOpacity =0.0f; 

    yourToolBar.layer.shadowRadius = 0.0f; 

आशा है कि यह आपके लिए सहायक होगा ...

+0

इसका आईओएस 7 पर कोई प्रभाव नहीं पड़ता है जिसे मैं बता सकता हूं। – natbro

-1

setBackgroundImage: _maskedImage छाया को दूर वरना उपकरण पट्टी छिपाने के बाद अनुकूलित छाया स्पष्ट विधि कॉल करने की जरूरत

15

कोई नहीं iOS7 पर काम किया, कुछ या तो पुराने iOS संस्करण पर लगातार काम करने के लिए नहीं मालूम था। यह (पैराफ्रेशिंग http://samplecodebank.blogspot.com/2013/06/UIToolbar-setShadowImage-forToolbarPosition-example.html) मेरे लिए 5.1+ पर लगातार काम करता है और कस्टम पृष्ठभूमि छवियों और रंग मास्क उत्पन्न करने से संक्षिप्त और अधिक प्रदर्शनकारी है। अन्य उत्तर की

toolbar.backgroundColor = [UIColor clearColor]; 
if ([toolbar respondsToSelector:@selector(setBackgroundImage:forToolbarPosition:barMetrics:)]) { 
    [toolbar setBackgroundImage:[UIImage new] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; 
} 
if ([toolbar respondsToSelector:@selector(setShadowImage:forToolbarPosition:)]) { 
    [toolbar setShadowImage:[UIImage new] forToolbarPosition:UIToolbarPositionAny]; 
} 
0

कोई भी आईओएस 7 में मेरे लिए काम किया है, इसलिए यहां मैं इंटरफ़ेस बिल्डर का उपयोग करके क्या किया है:

  1. एक UIView करने के लिए उपकरण पट्टी जोड़ें।
  2. UIView को UIToolbar के समान आकार दें।
  3. UIView के शीर्ष को तब तक खींचें जब तक कि यह केवल UIToolbar के शीर्ष को कवर न करे।
  4. विशेषता निरीक्षक का उपयोग करके 'क्लिप सबव्यू' पर क्लिक करें।

ऐसा करने से टूलबार के शीर्ष को क्लिप किया जाएगा और इस प्रकार भूरे रंग की छाया को हटा दिया जाएगा।

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