我想在搜索栏的文本字段右侧添加一个UIActivityIndicator。 因此,搜索栏将在从DB中获取数据时继续显示加载状态。
对此有何想法?
答案 0 :(得分:8)
使用微调器
更改搜索放大镜UITextField *searchField = nil;
for (UIView *subview in searchBar.subviews) {
if ([subview isKindOfClass:[UITextField class]]) {
searchField = (UITextField *)subview;
break;
}
}
if (searchField) {
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
searchField.leftView = spinner;
}
或者如果您愿意,可以在搜索栏视图上添加微调器
[self.searchBar addSubview:spinner];
答案 1 :(得分:2)
将活动指示符添加为搜索栏的子视图,如:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.center = CGPointMake(160, 240);
spinner.hidesWhenStopped = YES;
spinner.tag = 7;
[self.searchBar addSubview:spinner];
}
如果您想删除活动指示符,可以使用标记。
答案 2 :(得分:0)
将我的评论添加为答案。
您可以尝试使用[searchbar addSubview:activityIndicator];
没有内置方法可以执行此操作。您可以更改的是使用方法setImage:forSearchBarIcon:state:
的搜索图标。这可用于在搜索栏中添加不同的图像。 Apple doc on Searchbar.解决方法是循环浏览搜索栏的子视图,并将活动指示符添加到所需位置的子视图中。