it-swarm.com.ru

Как изменить положение или скрыть значок лупы в UISearchBar в IOS 7?

Я работаю над приложением IOS 7. По умолчанию оно выглядит как Pic (1). Но мне нужно изменить его на Pic (2). Я гуглил и нашел несколько ответов на требование, но оно не изменилось. Или же мне нужно скрыть. Так что я могу справиться с фоновым изображением. Это первое изображение

Pic(1)

enter image description here

Я использовал код ниже, чтобы изменить его. Но не удалось.

В .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;
}

}

Я не понимаю, как сделать центр изображения вида равным нулю. Это действительно убивает мое время. Пожалуйста, помогите мне. Где я ошибся.

18
iSwaroop
    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;

Попробуйте это может быть, это поможет вам ........

12
Hari1251

Я не уверен, как выровнять заполнитель по левому краю, но в iOS 5.0 есть простой, поддерживаемый способ изменить свойства текстового поля панели поиска, например:

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

который будет скрывать значок увеличительного стекла.

9
atticus

Вы можете попробовать:

searchBar.setImage(UIImage(named: "yourimage")!, forSearchBarIcon: UISearchBarIcon.Clear, state: UIControlState.Normal)
0
DairySeeker