У меня есть индикатор активности и прозрачный черный слой за ним.Когда что-то загружается, я показываю их так:
[activityIndicator startAnimating];
loadingCover.hidden = NO;
И когда я скрываю их, я просто делаю это так:
[activityIndicator stopAnimating]; //hides on stop
loadingCover.hidden = YES;
Пока все работает.Но почему-то, если я хочу показать их снова, это не сработаетЕсть идеи?
РЕДАКТИРОВАТЬ: Вот как я это делаю ...
- (void)viewDidLoad {
[mainView addSubview:loadingCover]; //works
}
- (void)parserDidEndDocument:(NSXMLParser *)parser {
[loadingCover removeFromSuperview]; //works
}
- (void)refreshRSS:(id)sender {
[mainView addSubview:loadingCover]; //doesn't work
}
РЕДАКТИРОВАТЬ2: Во-первых, я кодирую с режимом ARC и второй,loadingCover был изменен на loadingplate, нет, biggie ...
Хорошо, поэтому в моем файле .h я делаю это:
UIView *loadingplate;
UIActivityIndicatorView *loadingIndicator;
И в моем файле .m в viewDidLoad я делаю это:
CGRect viewRect = CGRectMake(0, 0, 320, 460);
loadingplate = [[UIView alloc] initWithFrame:viewRect];
UIColor *loadingplateColor = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
[loadingplate setBackgroundColor:loadingplateColor];
loadingplate.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin;
loadingIndicator = [[UIActivityIndicatorView alloc] initWithFrame:viewRect];
[loadingIndicator setContentMode:UIViewContentModeCenter];
[loadingIndicator startAnimating];
loadingIndicator.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin;
[loadingplate addSubview:loadingIndicator];
[mainView addSubview:loadingplate];
EDI3: Прочитав ответ Джасариена, я попробовал это в своем файле .h:
@property (strong, nonatomic) UIView *loadingPlate;
А затем в своем файле .m:
@synthesize loadingPlate = _loadingPlate;
В этом файле viewDidLoad я создаю представление.
Но, похоже, это тоже не работает.