我正在做一个应用程序的简单更改,以添加UISearchBar
组件,但是在UI中遇到了一些相当奇怪的布局怪癖。用图片说明可能更容易。
这是组件没有焦点时的样子:
请注意,图标和占位符文本太过分了,占位符文本太过分了。这就是当我点击该字段时会发生什么:
图标现在位于正确的位置,但占位符文本现在位于左侧太远并与图标重叠。是什么给了什么?
当场失去焦点时,它会恢复到原始布局。除非我先输入一些文本,否则它会保留第二种布局。
我用来设置UISearchBar
的代码没有做任何特别的事情:
UIView* containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
containerView.backgroundColor = UI_COLOR_NAV_TITLEBAR;
searchField = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, containerView.frame.size.width - 40, 44)];
searchField.placeholder = @"search all items";
searchField.searchBarStyle = UISearchBarStyleMinimal;
searchField.showsBookmarkButton = NO;
searchField.showsCancelButton = NO;
searchField.showsScopeBar = NO;
searchField.showsSearchResultsButton = NO;
UITextField* textSearchField = [searchField valueForKey:@"_searchField"];
searchField.backgroundColor = [UIColor clearColor];
textSearchField.textColor = UI_COLOR_NAV_TEXT;
searchField.delegate = self;
[containerView addSubview:searchField];
//...
我希望UISearchBar
始终显示在第二个示例中,但显然没有文本字段与图标重叠。我忽略了这个问题的简单解决方案吗?
答案 0 :(得分:0)
尝试使用以下搜索代码进行搜索..
[searchField setLeftViewMode:UITextFieldViewModeNever];
[searchField setRightViewMode:UITextFieldViewModeNever];
[searchField setBackground:[UIImage imageNamed:@"searchicon.png"]];
最后是在左侧显示图标,使用图像。