2013-03-09 140 views
1

我在我的应用程序中有一个滚动视图。 如果我点击一个页面上的按钮,则添加一个子视图。我想在用户滚动视图时删除此子视图。该功能被称为:从不存在的视图中删除子视图

-(void) DisableViews { 
    [Annimation removeFromSuperview]; 
    NSLog(@"scroll"); 
} 

我得到的NSLog很多次,但风景也就是子视图,当我回来的页面。

我想这会发生,因为子视图的视图不是当前的视图,所以我不能删除子视图。

是否有任何可能从子视图的任何视图中删除子视图?

编辑: ViewController.h

@interface ViewController : UIViewController { 

//... 

    UIView *Annimation; 



} 

@property (nonatomic,retain) UIView *Annimation; 

实现:

ViewController.m 

#import "ViewController.h" 
#import "AppDelegate.h" 




@implementation ViewController 

@synthesize Annimation; 


//... 

- (void) Bild1ButtonKlickt{ 
    Annimation = [[UIView alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0)]; 
    Annimation.backgroundColor = [UIColor blackColor]; 
    [self.view addSubview:Annimation]; 
} 
+0

NSLog相当无用。使它成为'NSLog(@“remove℅@”,[动画描述]);'。 – 2013-03-09 18:52:47

+0

我的NSLog只查看这个函数是否被调用 – Pascal 2013-03-10 12:50:26

+0

它还应该告诉“Animation”是否为非零。 – 2013-03-10 17:19:32

回答

0

按照要求作为回答:那是该scrollview中唯一的子视图吗?无论如何,从how to remove subviews from scrollview?的答案应该工作

现在从上面的页面的答案确实修复它吗?

+0

[[myScrollView viewWithTag:AnnimationTag] removeFromSuperview];我添加了一个标签到我的Annimation View然后它可以工作 – Pascal 2013-03-15 12:36:01

+0

@Pascal好的,很高兴知道。 – 2013-03-15 12:39:51

1

最有可能的 “Annimation”(我假设是伊娃)是nil在这一点上,所以什么也没有发生当你尝试删除它。

(作为一个说明,不直接访问您的高德这样的。你的财产应该叫animationView(要清楚这是一个视图,而不是一个NSAnimation,你应该通过self.animationView访问它。此外,方法应该总是有一个小写字母,对命名方法和属性非常敏感,对运行时命名很重要;它不仅仅是风格)

+0

这个名字只是为了测试,我稍后会重命名它。但我无法使用self.animationView,因为没有找到属性 – Pascal 2013-03-10 12:47:57