如何更改UISearchBar以使用文本替换文本字段内的搜索图标

Oma*_*wan 3 iphone objective-c ios

我有UISearchBar,我想删除搜索标记(放大镜图标)并放置文本而不是它

Abh*_*ngh 15

您可以通过以下方式更改放大图标,使其适应您的需求: -

#import <UIKit/UIKit.h>

@interface SearchBoxExperimentsViewController : UIViewController {  
    IBOutlet UISearchBar *searchBar;
}
@end 

#import "SearchBoxExperimentsViewController.h"
@interface SearchBoxExperimentsViewController (Private)
- (void)setSearchIconToFavicon;
@end

@implementation SearchBoxExperimentsViewController
- (void)viewDidLoad 
{  
    [self setSearchIconToFavicon];  
    [super viewDidLoad];
}

#pragma mark Private
- (void)setSearchIconToFavicon 
{  
    // Really a UISearchBarTextField, but the header is private.  
    UITextField *searchField = nil;  
    for (UIView *subview in searchBar.subviews) {    
        if ([subview isKindOfClass:[UITextField class]]) {      
            searchField = (UITextField *)subview;      
            break;    
        }  
    }    
    if (searchField) {      
        UIImage *image = [UIImage imageNamed: @"favicon.png"];   
        UIImageView *iView = [[UIImageView alloc] initWithImage:image];    
        searchField.leftView = iView;    
        [iView release];  
    }  
}
@end 
Run Code Online (Sandbox Code Playgroud)

它对我有用:)


Ali*_*min 15

您可以使用UIAppearance方法

Swift 3.0

UISearchBar.appearance().setImage(UIImage(named: "image_name"), for: .search, state: .normal)
Run Code Online (Sandbox Code Playgroud)

Objective-C的

[[UISearchBar appearance] setImage:[UIImage imageNamed:@"image_name"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal]; 
Run Code Online (Sandbox Code Playgroud)