2013-10-24 11 views
18

Pracuję nad aplikacją IOS 7. Domyślnie pojawia się ona jak Pic (1). Ale muszę zmienić ją jako Pic (2) .I googled i znalazłem kilka odpowiedzi na wymagania, ale to się nie zmieniło.Or else muszę hide.So że mogę zarządzać z image.This tło jest pierwszy obrazJak zmienić pozycję lub ukryć ikonę lupy w UISearchBar w IOS 7?

Pic(1)

enter image description here

użyłem poniżej kod do modyfikacji it.But zrobił sukces.

W pliku .h

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

W .m pliku

@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; 
} 

} 

nie otrzymuję, jak zrobić środek obrazu widoku do nil.Its naprawdę zabija moje time.Please pomoc mnie. Gdzie się pomyliłem.

+0

Patrz na szybki-3: http://stackoverflow.com/questions/19289406/uisearchbar-search-icon-isnot-left-aligned-in-ios7/41976067# 41976067 – Shrawan

Odpowiedz

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; 

Spróbuj to może być to będzie u pomóc ........

+0

Udało się .. Dzięki :) – iSwaroop

+0

Ale nie działa, jeśli stosuję kolor RGB – iSwaroop

+0

spróbuj ustawić obraz tła zamiast ustawiania koloru RGB do niego. – Hari1251

9

Nie jestem pewien, jak w lewo wyrównać zastępczy, ale jak iOS 5.0 jest prosty, obsługiwany sposób modyfikowania właściwości pola tekstowego paska wyszukiwania, np .:

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

, który ukryje ikonę lupy.

+1

Awans na cięcie gordyjskiego węzła! Dlaczego UISearchBar musi być tak żmudny (retoryczny)? –

0

można spróbować:

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