Как изменить положение или скрыть значок лупы в UISearchBar в IOS 7?
Я работаю над приложением IOS 7. По умолчанию это выглядит как Pic (1). Но мне нужно изменить его как Pic (2). Я искал googled и нашел несколько ответов для этого требования, но он не изменился. Или иначе мне нужно скрыть. Так что я могу справиться с фоновым изображением. Это первое изображение
![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;
}
}
Я не понимаю, как сделать центр изображения представления нил. Он действительно убивает мое время. Пожалуйста, помогите мне. Если я ошибся.
Ответы
Ответ 1
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;
Попробуйте это, возможно, это поможет вам........
Ответ 2
Я не уверен, как выровнять по левому краю местозаполнитель, но с iOS 5.0 есть простой, поддерживаемый способ изменения свойств текстового поля в строке поиска, например:
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setLeftViewMode:UITextFieldViewModeNever];
который скроет значок увеличительного стекла.
Ответ 3
Вы можете попробовать:
searchBar.setImage(UIImage(named: "yourimage")!, forSearchBarIcon: UISearchBarIcon.Clear, state: UIControlState.Normal)