我的应用中有滚动视图。 如果我单击一个页面上的按钮,则会添加一个子视图。我想在用户滚动视图时删除此子视图。此功能称为:
-(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];
}
答案 0 :(得分:1)
此时很可能“Annimation”(我假设是一个ivar)是nil
,因此当您尝试删除它时没有任何事情发生。
(请注意,不要直接以这种方式访问你的ivars。你的财产应该被称为animationView
(要清楚它是一个视图而不是NSAnimation
,你应该访问它通过self.animationView
。此外,方法应始终具有前导小写.ObjC对方法和属性命名非常敏感。正确的命名对于运行时很重要;它不仅仅是风格。)
答案 1 :(得分:0)
按照要求回答:这是滚动视图中唯一的子视图吗?无论如何,how to remove subviews from scrollview?的答案之一应该有效。
现在上一页的答案确实解决了吗?