1

我正在尝试像这样自定义我的搜索栏 在此处输入图像描述

到目前为止,我已经设法做到这一点

在此处输入图像描述 现在我需要知道如何在右侧添加图像,塑造角落和改变图像的背景。到目前为止,这是我的代码。我可以在 UITextField 的帮助下做到这一点,但我想使用 UISearchBar 做到这一点。有什么帮助吗??

   - (void)setSearchIconToFavicon 
    {  
        // commented are the things I tried out 
        UITextField *searchField = nil;  
        for (UIView *subview in searchBar.subviews)
        {    
            if ([subview isKindOfClass:[UITextField class]]) 
            {      
                searchField = (UITextField *)subview;      
                break;    
            }  
        }    
        if (searchField) 
        {      
            UIImage *image = [UIImage imageNamed: @"search_btn.png"];   
            UIImageView *iView = [[UIImageView alloc] initWithImage:image]; 
            //UIImage *image2 = [UIImage imageNamed: @"search_next_btn.png"];   
            //UIImageView *iView2 = [[UIImageView alloc] initWithImage:image2];  
            searchField.leftView = iView;    
            //searchField.rightView=iView2;
            [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview];
            searchField.textColor = [UIColor grayColor];
        }  
  }
4

2 回答 2

0

您可以替换书签图像,并在必要时调整其偏移量。像这样..

[self.searchDisplayController.searchBar setImage:[UIImage imageNamed:@"yourImage"] forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];
[self.searchDisplayController.searchBar setPositionAdjustment:UIOffsetMake(0, 0) forSearchBarIcon:UISearchBarIconBookmark];

您可以在委托方法中处理按钮事件:

- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar

我希望你明白我的意思。

于 2013-08-29T12:18:46.373 回答
0

如果您的目标应用程序 >=5.0,您可以使用这行代码来更改搜索栏的背景图像。

[[UISearchBar appearance] setSearchFieldBackgroundImage:[UIImage imageNamed:@"searchbar.png"]forState:UIControlStateNormal];
于 2013-08-29T12:46:54.960 回答