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]; 
}
4

2 に答える 2

1

ほとんどの場合、「アニメーション」(これは ivar であると想定しています) がnilこの時点にあるため、削除しようとしても何も起こりません。

(注として、この方法で ivar に直接アクセスしないでください。プロパティを呼び出す必要がありますanimationView(明確にするために、それはビューであり、 ではありませNSAnimationself.animationView。メソッドとプロパティの命名に非常に敏感です.適切な命名はランタイムにとって重要です;それはスタイルだけではありません.)

于 2013-03-09T19:01:25.073 に答える
0

回答として要求されたとおり:それはそのスクロールビューの唯一のサブビューですか? とにかく、スクロールビューからサブビューを削除する方法からの答えの1つは? 動作するはずです。

上記のページのどの回答がそれを修正しましたか?

于 2013-03-15T12:25:27.513 に答える