如何在搜索栏文本字段中插入UIActivityIndi​​cator?

时间:2012-11-28 06:41:43

标签: ios uisearchbar uiactivityindicatorview

我想在搜索栏的文本字段右侧添加一个UIActivityIndi​​cator。 因此,搜索栏将在从DB中获取数据时继续显示加载状态。

对此有何想法?

3 个答案:

答案 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.解决方法是循环浏览搜索栏的子视图,并将活动指示符添加到所需位置的子视图中。