IOS 7のUISearchBarで位置を変更したり、拡大鏡アイコンを非表示にする方法は?
私はIOS 7アプリケーションに取り組んでいます。デフォルトではPic(1)のように表示されます。しかし、Pic(2)として変更する必要があります。グーグルで検索したところ、要件に対する回答はほとんど見つかりませんでした。変わっていません。さもないと非表示にする必要があります。背景画像で管理できるように。これが最初の画像です。
以下のコードを使用して変更しましたが、成功しませんでした。
.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;
}
}
ビューの画像の中心をゼロにする方法がわかりません。本当に時間がかかります。助けてください。どこが間違っていたのか。
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;
これを試してみてくださいそれはあなたを助けるかもしれません........
プレースホルダーを左揃えにする方法はわかりませんが、iOS 5.0以降では、サポートされている簡単な方法で、検索バーのテキストフィールドプロパティを変更できます。例:
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setLeftViewMode:UITextFieldViewModeNever];
虫眼鏡アイコンが非表示になります。
あなたは試すことができます:
searchBar.setImage(UIImage(named: "yourimage")!, forSearchBarIcon: UISearchBarIcon.Clear, state: UIControlState.Normal)