활동 표시기가보기의 맨 위에 추가되며 활동 표시기가 켜져있을 때 i 그라운드에서 선택 사항을 사용하지 않으려합니다. 또한 어떤 이유로 데이터가 테이블보기에 표시된 후 내 활동 표시기가 약 30-45 초 동안 계속 회전합니다 (네트워크 속도에 따라 다름). 활동 표시기 카테고리를 만들었습니다.활동 표시기가있는 경우 배경에서 선택 해제
작동 표시 카테고리 코드 : 테이블 뷰 컨트롤러
- (UIView *)overlayView {
return objc_getAssociatedObject(self, OverlayViewKey);
}
- (void)setOverlayView:(UIView *)overlayView {
objc_setAssociatedObject(self, OverlayViewKey, overlayView, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (void)showActivityIndicatorForView:(UIView *)view {
self.overlayView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
self.center = self.overlayView.center;
[view setUserInteractionEnabled:NO];
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[self.overlayView setUserInteractionEnabled:NO];
[self startAnimating];
[self.overlayView addSubview:self];
[view addSubview:self.overlayView];
[view bringSubviewToFront:self.overlayView];
self.hidesWhenStopped = YES;
self.hidden = NO;
}
- (void)hideActivityIndicatorForView:(UIView *)view {
[self stopAnimating];
[self.overlayView setUserInteractionEnabled:YES];
[self.overlayView removeFromSuperview];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
[view setUserInteractionEnabled:YES];
}
용도 : 내가 잘못 무슨
@interface MyTableViewController()
@property (nonatomic, strong) UIActivityIndicatorView *activityIndicator;
@end
@implementation MyTableViewController
- (id) initWithSomething:(NSString *)something {
self = [super init];
if (self) {
self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
self.activityIndicator.overlayView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self getDataServiceRequest];
[self.activityIndicator showActivityIndicatorForView:self.navigationController.view];
}
- (void)requestCompletionCallBack sender:(ServiceAPI *)sender {
// Do something here with the data
[self.activityIndicator hideActivityIndicatorForView:self.navigationController.view];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
}
@end
을하고 있는가? 활동 표시기가 켜져 있고 사용자 상호 작용을 사용 중지 한 후에도 백그라운드에서 데이터를 선택할 수있는 이유는 무엇입니까?
나를 도왔다. 이제 내 활동 표시기가 사라지고 곧 화면에 데이터가 표시됩니다. 이걸로 나는 데이터가 화면에있는 동안 활동 지표가 여전히 회전하고있는 시나리오를 보지 못합니다. 불투명 한 커버 뷰를 추가하지 않아도된다고 생각합니다. 고마워요 @ 던컨 C! –