从非当前视图中删除子视图

时间:2013-03-09 18:10:17

标签: iphone ios objective-c uiscrollview subview

我的应用中有滚动视图。 如果我单击一个页面上的按钮,则会添加一个子视图。我想在用户滚动视图时删除此子视图。此功能称为:

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

我多次获得NSLog,但当我回到页面时,视图也是Subview。

我认为会发生这种情况,因为此时子视图的视图不是当前视图,因此我无法删除子视图。

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

编辑: 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]; 
}

2 个答案:

答案 0 :(得分:1)

此时很可能“Annimation”(我假设是一个ivar)是nil,因此当您尝试删除它时没有任何事情发生。

(请注意,不要直接以这种方式访问​​你的ivars。你的财产应该被称为animationView(要清楚它是一个视图而不是NSAnimation,你应该访问它通过self.animationView。此外,方法应始终具有前导小写.ObjC对方法和属性命名非常敏感。正确的命名对于运行时很重要;它不仅仅是风格。)

答案 1 :(得分:0)

按照要求回答:这是滚动视图中唯一的子视图吗?无论如何,how to remove subviews from scrollview?的答案之一应该有效。

现在上一页的答案确实解决了吗?