wake-up-neo.com

So ändern Sie die Position oder blenden das Lupensymbol in der UISearchBar in aus IOS 7?

Ich arbeite an der IOS 7-Anwendung. Standardmäßig wird sie wie Pic (1) angezeigt. Ich muss sie jedoch als Pic (2) ändern. Ich habe gegoogelt und nur wenige Antworten für die Anforderung gefunden, dies ist jedoch nicht der Fall geändert. Sonst muss ich mich verstecken. Damit kann ich mit Hintergrundbild umgehen. Dies ist das erste Bild

Pic(1)

enter image description here

Ich habe den folgenden Code verwendet, um ihn zu ändern. Aber es war nicht erfolgreich.

In der .h Datei

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

In der .m-Datei

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

}

Ich verstehe nicht, wie ich die Bildmitte der Ansicht auf null stellen kann. Das tötet meine Zeit wirklich. Bitte helfen Sie mir, wo ich mich geirrt habe.

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;

Versuchen Sie dies vielleicht wird es Ihnen helfen ........

12
Hari1251

Ich bin nicht sicher, wie der Platzhalter linksbündig ausgerichtet werden soll, aber seit iOS 5.0 gibt es eine einfache, unterstützte Methode zum Ändern der Textfeld-Eigenschaften der Suchleiste, z. B .:

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

dadurch wird das Lupensymbol ausgeblendet.

9
atticus

Du könntest es versuchen:

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