18

我正在开发 IOS 7 应用程序。默认情况下,它看起来像 Pic(1)。但我需要将其更改为 Pic(2)。我用谷歌搜索并找到了很少的答案,但它没有改变。否则我需要隐藏。这样我就可以使用背景图片进行管理。这是第一张图片

图片(1)

在此处输入图像描述

我用下面的代码来修改它。但没有成功。

在 .h 文件中

@property(nonatomic,strong) IBOutlet UISearchBar *findSearchBar;

在 .m 文件中

@synthesize findSearchBar;

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

 - (void)setSearchIconToFavicon
{
// The text within a UISearchView is a UITextField that is a subview of that UISearchView.
   UITextField *searchField;
   for (UIView *subview in self.findSearchBar.subviews)
   {
       if ([subview isKindOfClass:[UITextField class]]) {
          searchField = (UITextField *)subview;
          break;
      }
  }

if (searchField)
{
    UIView *searchIcon = searchField.leftView;
    if ([searchIcon isKindOfClass:[UIImageView class]])
    {
        NSLog(@"aye");
    }
    searchField.rightView = nil;
    searchField.leftView = nil;
    searchField.leftViewMode = UITextFieldViewModeNever;
    searchField.rightViewMode = UITextFieldViewModeAlways;
}

}

我不知道如何使视图图像的中心为零。它真的在浪费我的时间。请帮助我。我哪里出错了。

4

3 回答 3

12
    UITextField *txfSearchField = [looksearchbar valueForKey:@"_searchField"];
    [txfSearchField setBackgroundColor:[UIColor whiteColor]];
    [txfSearchField setLeftViewMode:UITextFieldViewModeNever];
    [txfSearchField setRightViewMode:UITextFieldViewModeNever];
    [txfSearchField setBackground:[UIImage imageNamed:@"searchbar_bgImg.png"]];
    [txfSearchField setBorderStyle:UITextBorderStyleNone];
    //txfSearchField.layer.borderWidth = 8.0f;
    //txfSearchField.layer.cornerRadius = 10.0f;
    txfSearchField.layer.borderColor = [UIColor clearColor].CGColor;
    txfSearchField.clearButtonMode=UITextFieldViewModeNever;

试试这个可能对你有帮助........

于 2013-10-24T13:47:43.540 回答
9

我不知道如何左对齐占位符,但从 iOS 5.0 开始,有一种简单且受支持的方式来修改搜索栏的文本字段属性,例如:

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setLeftViewMode:UITextFieldViewModeNever];

这将隐藏放大镜图标。

于 2014-04-12T00:29:14.900 回答
0

你可以试试:

searchBar.setImage(UIImage(named: "yourimage")!, forSearchBarIcon: UISearchBarIcon.Clear, state: UIControlState.Normal)
于 2016-06-09T13:58:21.780 回答