2012-11-17 12 views
10

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

+0

@ACB तरह पर्याप्त एक और पोस्टिंग मैं UISearchBar के बारे में था, जहां मैं टिप्पणी में एक अतिरिक्त प्रश्न के रूप में इस पूछा में यह जवाब देने के लिए किया गया था। उन्होंने कहा: "आप नीचे उल्लिखित आईओएस 5 ऐप के लिए उपयोग कर सकते हैं। ऐप्स के लिए जो इससे पहले ओएस संस्करण का उपयोग करता है, यह काम नहीं करेगा। - (शून्य) सेट इमेज: (यूआईएममेज *) आइकन खोज के लिए इमेज: सर्चबारी आइकन: (यूआईएसओआरबीआरआईकॉन) आइकन स्थिति: (यूआईसीओन्ट्रोलस्टेट) राज्य, " –

उत्तर

34

एप्लिकेशन के लिए जो iOS 5 के बाद का समर्थन करता है, तो आप ऐसा करने के लिए नीचे दी गई विधि का उपयोग कर सकते,

- (void)setImage:(UIImage *)iconImage forSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state; 

UIControlStateNormal और UIControlStateDisabled खोज पट्टी के लिए दो संभावित स्थितियों में हैं।

ऐप्स के लिए जो इससे पहले ओएस संस्करण का उपयोग करता है, यह काम नहीं करेगा। आपको UISearchbar पर एक श्रेणी बनाना पड़ सकता है और सबव्यूम का आकलन करके आइकन बदलना पड़ सकता है।

+0

उन लोगों के लिए जो आलसी हैं या थोड़ा और स्पष्टीकरण चाहते हैं (उदाहरण के लिए कि यह यूआईएसआईआरबीबार के लिए एक विधि है): '[self.searchController.searchBar setImage: [UIImage imageNamed: @" YourImageHere "] के लिए खोजबारी आइकन: UISearchBarIconSearch State: UIControlStateNormal ]; ' या जहां कहीं भी आपका खोज नियंत्रक/बार – gadu

-2

सभी सबव्यूज़ प्रिंट करने का प्रयास करें ... आईओएस इंडिपेंडेंट।

for (id obj in _SearchBar.subviews) { 
    NSLog(@"%@", obj); 

    if ([obj isKindOfClass:[UIImage class]]) { 
    NSLog(@"probably found..."); 

    UIImage *img = obj; 
    [img setImage....]; 
    } 
} 
0

उपयोग

- (void)setImage:(UIImage *)iconImage forSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state; 
13

तुम सिर्फ डिफ़ॉल्ट आवर्धक आइकन का रंग बदलना चाहते हैं, तो आप छवि टेम्पलेट मोड का उपयोग करें और फिर छवि को देखने के tintColor सेट करने के लिए सेट कर सकते हैं।

if ([view isKindOfClass:[UITextField class]]) { 
    UITextField *textField = (id)view; 

    UIImageView *iconView = (id)textField.leftView; 
    iconView.image = [iconView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 
    iconView.tintColor = <##dimmedColor##>; 

    // other styling: 
    textField.font = <##font##>; 
    textField.textColor = <##activeColor##>; 
    textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:<##searchBar##>.placeholder 
                     attributes:@{NSForegroundColorAttributeName: <##dimmedColor##>}]; 
} 
+0

छवि हैथरेंडिंग मोड कुंजी था। पहली नज़र में इसे याद किया! –

2

स्विफ्ट के लिए: -

UISearchBar.appearance().setImage(UIImage(named: "new_search_icon"), forSearchBarIcon: UISearchBarIcon.Search, state: UIControlState.Normal) 
संबंधित मुद्दे