iOS 7 の UISearchBar でいくつかの問題に直面した後、プレースホルダーのテキスト配置が原因で UITextField に切り替えることにしました。
しかし、UISearchBarの画像とテキストフィールドを設定することで、なんとか機能させることができました。
UITextField *textfieldField = [searchBar valueForKey:@"_searchField"];
[searchBar setImage:[UIImage imageNamed:@"icon_search"]
forSearchBarIcon:UISearchBarIconSearch
state:UIControlStateNormal];
UIImage *whatSearchImage = [UIImage imageNamed:@"icon_search.png"];
UIImageView *whatSearchView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 29, 29)];
whatSearchView.image = whatSearchImage;
textfield.leftViewMode = UITextFieldViewModeAlways;
textfield.leftView = whatSearchView;
面白いことに、UISearchBarIcon の画像を設定しないと、Apple のデフォルトの画像が使用されますが、大きくなります。
また、誰かがこれに対するより良い解決策を見つけたかどうかも知りたいです。