При самом первом запуске приложение занимается ведением базы данных. это занимает некоторое время, поэтому я добавил полупрозрачное представление со счетчиком и меткой, сообщающей пользователю, что происходит.
Чтобы иметь этот полупрозрачный вид поверх всего остального, я добавил в качестве подвида self.view.window. Весь код выглядит так:
-(void)housekeepDataBase{
self.searchOptionsControl.hidden=TRUE;
self.searchBar.hidden=TRUE;
UIView *translucentView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.window.frame.size.width, self.view.window.frame.size.height)];
translucentView.backgroundColor=[UIColor blackColor];
translucentView.alpha=0.65;
UILabel *activityLabel=[[UILabel alloc]initWithFrame:CGRectMake((self.view.center.x-140), (self.view.frame.size.width*0.75), 280, 20)];
activityLabel.numberOfLines=1;
activityLabel.textAlignment=UITextAlignmentCenter;
activityLabel.font=[UIFont fontWithName:@"Arial" size:20.0];
activityLabel.text=@"Cleaning up database";
activityLabel.textColor=[UIColor whiteColor];
activityLabel.backgroundColor=[UIColor clearColor];
UILabel *activityLabel2=[[UILabel alloc]initWithFrame:CGRectMake((self.view.center.x-140), (self.view.frame.size.width*0.75+40), 280, 20)]; activityLabel2.numberOfLines=1;
activityLabel2.textAlignment=UITextAlignmentCenter;
activityLabel2.font=[UIFont fontWithName:@"Arial" size:16.0];
activityLabel2.text=@"(It might take a while)";
activityLabel2.textColor=[UIColor whiteColor];
activityLabel2.backgroundColor=[UIColor clearColor];
UIActivityIndicatorView *spinner=[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.frame=CGRectMake((self.view.center.x-50), (self.view.frame.size.width*0.50), 100, 37);
[spinner startAnimating];
[self.view.window addSubview:translucentView];
[self.view.window addSubview:spinner];
[self.view.window addSubview:activityLabel];
[self.view.window addSubview:activityLabel2];
// dealing with the DB
}
К сожалению, это приводит к тому, что эти представления (представление, счетчик и метки) не поворачиваются в соответствии с ориентацией устройства.
Итак, вопрос: есть ли другой способ справиться с этим? либо поворот, либо добавление просмотров? Я хочу, чтобы полупрозрачный вид находился поверх панели навигации в верхней части экрана, а также поверх панели инструментов внизу.
Любые идеи? Заранее спасибо!