4

iOS 7 で問題が発生しています。

コード

[searchBar setImage:[UIImage imageNamed:@"icon_search"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];

iOS 6 と iOS 7 でアイコンのサイズが異なります。

画像サイズは 29x29 と 58x58@2x で、iOS 6 では正しく表示されますが、iOS 7 では 2 倍またはそれ以上小さくなります。

問題は何ですか?ありがとう!

4

4 に答える 4

6

カスタマイズUISearchBarIconSearchするには、次のコードが必要です。

[yourSearchBar setImage:[UIImage imageNamed: @"yourImage.png"]
           forSearchBarIcon:UISearchBarIconSearch
                      state:UIControlStateNormal];

アイコンを適切に変更するには、画像の解像度を正確に 14x14、@2x の場合は 28x28、@3x の場合は 42x42 にする必要があります。

これが役立つことを願っています:)

于 2015-10-02T21:57:14.090 に答える
6

これは私のために働くようです:

UIImage* image = [UIImage imageNamed:@"icon_search"];
[[UIImageView appearanceWhenContainedIn:[UISearchBar class], nil] setBounds:CGRectMake(0, 0, image.size.width, image.size.height)];
于 2014-05-27T13:45:44.823 に答える
2

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 のデフォルトの画像が使用されますが、大きくなります。

また、誰かがこれに対するより良い解決策を見つけたかどうかも知りたいです。

于 2013-11-12T12:24:16.213 に答える