3

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

对此有任何想法吗?

4

3 回答 3

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];
于 2012-11-28T06:55:19.317 回答
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];
}

当您想删除活动指示器时,您可以使用标签。

于 2012-11-28T06:49:15.517 回答
0

添加我的评论作为答案。

你可以尝试使用[searchbar addSubview:activityIndicator];没有内置的方法来做到这一点。唯一可以更改的是使用方法的搜索图标setImage:forSearchBarIcon:state:。这可用于在搜索栏中添加不同的图像。搜索栏上的 Apple 文档。一种解决方法是遍历搜索栏的子视图并将活动指示器添加到所需位置的子视图。

于 2012-11-28T06:55:06.883 回答