在我viewDidLoad
,我調用一個函數:viewDidLoad方法調用行爲
[common startActivityIndicatorOnView:self.view];
此方法添加與活動指示燈視圖,在self.view
中心。 我的當前視圖被推送到導航堆棧上。這是該視圖中查找此方法返回後(活動指示燈的觀點是不是在中心):
但是,如果我調用相同的方法是這樣的:
[common performSelectorOnMainThread:@selector(startActivityIndicatorOnView:) withObject:self.view waitUntilDone:NO];
的觀點看起來像下面的圖片(活動指示燈的觀點是在中心):
我不明白,它是如何有所作爲,如果主叫用戶線是寫在viewDidLoad
。 如果有人能幫助我得到這個,請提前致謝。
僅供參考, 的方法是這樣的:當你加載viewControllers
-(void) startActivityIndicatorOnView:(UIView *)view {
if ([NSRunLoop currentRunLoop] != [NSRunLoop mainRunLoop]) {
[self performSelectorOnMainThread:@selector(startActivityIndicatorOnView:) withObject:view waitUntilDone:NO];
return;
}
view.userInteractionEnabled = NO;
activityBgView = [[UIView alloc] initWithFrame:CGRectMake((view.frame.size.width/2) - 50, (view.frame.size.width/2) - 50, 100, 100)];
activityBgView.center = view.center;
activityBgView.backgroundColor = [UIColor grayColor];
activityBgView.alpha = 0.8;
spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake((activityBgView.frame.size.width/2)-10, (activityBgView.frame.size.width/2)-10, 20, 20)];
spinner.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
spinner.center = view.center;
[view addSubview:activityBgView];
[view addSubview:spinner];
[spinner startAnimating];
}
嘗試self.navigationController.view代替self.view。 – satheeshwaran 2013-04-09 10:20:15
@Pince我已經知道調用'performSelectorOnMainThread'調用主線程中的方法。但我在'viewDidLoad'中這樣做,它本身在主線程中調用。所以,應該沒有區別。 – 2013-04-09 11:26:28