首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SubViews未被删除

SubViews未被删除
EN

Stack Overflow用户
提问于 2012-08-24 22:08:23
回答 2查看 297关注 0票数 1

有人能告诉我为什么这段代码没有移除动画中的子视图吗?视图堆叠在一起,第二次关闭视图时,它不会显示动画,现在有两个标记为99的subView实例。它并不是第一次发布的。

代码语言:javascript
复制
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是一个ViewController子类,smallView是我添加地图的位置,是所有视图的容器。

代码语言:javascript
复制
@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;

                 }];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-24 22:21:58

我认为问题可能是您正在从您正在迭代的数组中删除一个对象,这将导致问题。试试这个:

代码语言:javascript
复制
NSArray *subviews = [NSArray arrayWithArray:[self.smallView subviews]];
for (UIView *subview in subviews) {
    NSLog(@"view:%@",subview);
    if (subview.tag == 99) {

        [UIView animateWithDuration:.5
                         animations:^{
                             subview.alpha = 0;
                         }
                         completion:^(BOOL finished){
                             subview.alpha = 0;
                             [subview removeFromSuperview];
                         }];
    }
}

这样,您就不再需要从正在迭代的数组中移除对象。

票数 1
EN

Stack Overflow用户

发布于 2012-08-24 22:25:47

您能澄清一下为什么要检查subview.tag的值为99吗?有没有可能根本没有调用if语句中的代码?添加一些NSLog调用,看看if语句中的代码是否正在执行。如果是,那么您应该检查在If语句中调用的方法,并确保它们都是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12111030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档