工作,我無法打通的問題是,UIActivityIndicatorView在我看來,不啓動動畫當我執行UIActivityIndicatorView startAnimating不,在searchBarSearchButtonClicked
[UIActivityIndicatorView startAnimating];
在
searchBarSearchButtonClicked
這是我的代碼:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
NSString *causeStr = nil;
if ([CLLocationManager locationServicesEnabled] == NO)
{
causeStr = @"device";
}
else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)
{
causeStr = @"app";
}
else
{
[_activityIndicatorView startAnimating];
_searchPlacesResults = [[NSMutableArray alloc] init];
NSString * searchQuery = [searchBar text];
FTGooglePlacesAPINearbySearchRequest *request = [[FTGooglePlacesAPINearbySearchRequest alloc] initWithLocationCoordinate:locationManager.location.coordinate];
request.rankBy = FTGooglePlacesAPIRequestParamRankByDistance;
request.keyword = searchQuery;
request.radius = 500;
[self startSearchingPlaces:request];
}
if (causeStr != nil)
{
NSString *alertMessage = [NSString stringWithFormat:@"You currently have location services disabled for this %@. Please refer to \"Settings\" app to turn on Location Services.", causeStr];
[[[UIAlertView alloc] initWithTitle:@"Location Services Disabled"
message:alertMessage
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
}
}
直到我清除搜索結果tableView使用其取消按鈕連接到UISearchBar。
我曾嘗試和驗證其他方法調用時
[UIActivityIndicatorView startAnimating];
實際工作。
編輯: 我也已經驗證了我的UIActivityIndicatorView不爲空,其實這是我所得到的,當我的NSLog它:
<UIActivityIndicatorView: 0x16e91ed0; frame = (150 274; 20 20); hidden = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x16e91f90>>
你檢查過else塊包含的代碼[UIActivityIndicatorView startAnimating]執行?你的NSLog顯示UIActivityIndicatorView是隱藏的(hidden = YES);? – russell 2014-11-24 05:13:03
是的,我剛剛檢查過,其他塊正在執行。 – rambodrahmani 2014-11-24 10:05:42
由於_activityIndicatorView.hidesWhenStopped = YES,它顯示HIDDEN; – rambodrahmani 2014-11-24 10:06:16