2013-03-09 65 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