有人能告訴我爲什麼這段代碼沒有刪除被動畫的子視圖嗎?視圖疊加起來,第二次關閉視圖時,視圖不會生成動畫,現在有兩個帶有標記99的subView實例。第一次沒有發佈視圖。SubViews沒有被刪除
for (UIView *subview in [self.smallView subviews]) {
NSLog(@"view:%@",subview);
if (subview.tag == 99) {
[UIView animateWithDuration:.5
animations:^{
subview.alpha = 0;
}
completion:^(BOOL finished){
subview.alpha = 0;
[subview removeFromSuperview];
}];
}
}
下面是如何添加子視圖,viewVC是一個視圖控制器子類和smallView是我加我的地圖,是所有視圖的容器。
@property (nonatomic, retain) CustomViewController *viewVC;
viewVC = [self.storyboard instantiateViewControllerWithIdentifier:@"VIEWVC"];
viewVC.view.frame = CGRectMake(20, 20, 280, 371);
viewVC.view.layer.cornerRadius = 15;
viewVC.view.tag = 99;
viewVC.view.alpha = 0;
[self.smallView addSubview:viewVC.view];
[UIView animateWithDuration:.5
animations:^{
viewVC.view.alpha = 1;
}
completion:^(BOOL finished){
viewVC.view.alpha = 1;
}];
您能否澄清爲什麼您要檢查subview.tag的值爲99? – Monkeyanator
我很確定你正在做你想用這個代碼做什麼。你能建立一個迭代子視圖的小方法嗎?用標籤== 99計數子視圖並打印計數?在循環外調用它,然後在完成塊中調用它。我的猜測是在removeFromSuperview之後計數將是正確的。我想你是在其他地方重新添加視圖。 – danh
添加視圖並調出alpha後,您不需要完成塊,但這不是問題所在。 – danh