0

ボタンをクリックして、サブビューの画像が非表示になっているかどうかを確認しようとしています。ログは表示されますが、どういうわけか画像の非表示ステータスを取得できません。

ここで何がうまくいかないのですか?あなたが私を助けてくれることを願っています!

ビューの読み込み:

SubSlide1Hoofdstuk3 *subslide1 = [[SubSlide1Hoofdstuk3 alloc] init];
CGRect frame = self.view.frame;
frame.origin.x = 0;
frame.origin.y = 0;
subslide1.view.frame = frame;

// This works finaly
UIImageView *zwart = subslide1.imageZwart;
[zwart setImage:[UIImage imageNamed:@"imageblack.jpg"]]; 
[subslide1.b1 addTarget:self action:@selector(switchImageZwart:) forControlEvents:UIControlEventTouchUpInside];

[_scrollView addSubview:subslide1.view];

サブビューで画像をチェックする IBAction は非表示になっています。

-(IBAction)switchImageZwart:(id)sender
{
    SubSlide1Hoofdstuk3 *switchactie = [[SubSlide1Hoofdstuk3 alloc] init];
    UIImageView *wit    = switchactie.imageWit;
    UIImageView *zwart  = switchactie.imageZwart;

    if(zwart.hidden == YES) {
        NSLog(@"Image black is hidden!");
    } else if(wit.hidden == YES) {
        NSLog(@"Image white is hidden!");
    } else {
        NSLog(@"Can't say... :(");
    }
}
4

1 に答える 1

2

ここでの問題は、 で作成した実際の UIImageView オブジェクトをチェックする代わりに、-(IBAction)switchImageZwart:(id)senderメソッド内で の新しいインスタンスを作成し、SubSlide1Hoofdstuk3そのプロパティ ( ) をチェックすることです。実際に必要なのは、参照を保持し、代わりにそれをチェックすることです。UIImageViewsviewDidLoad:subslide1

Ps。check メソッドを呼び出すボタンは実際には subslide1 のサブビューであるため、次のような参照を取得できます。

SubSlide1Hoofdstuk3 *switchactie = [sender superView];

編集:実際のコードの例:

あなたの.hファイルで:

@property(nonatomic, strong) SubSlide1Hoofdstuk3 *subslide1;

あなたの.mファイルで:

@synthesize subslide1;

- (void)viewDidLoad
{
    //...
    self.subslide1 = [[SubSlide1Hoofdstuk3 alloc] init];
    CGRect frame = self.view.frame;
    frame.origin.x = 0;
    frame.origin.y = 0;
    self.subslide1.view.frame = frame;

    // This works finaly
    UIImageView *zwart = self.subslide1.imageZwart;
    [zwart setImage:[UIImage imageNamed:@"imageblack.jpg"]]; 
    [self.subslide1.b1 addTarget:self action:@selector(switchImageZwart:) forControlEvents:UIControlEventTouchUpInside];

    [_scrollView addSubview:self.subslide1.view];

}


-(IBAction)switchImageZwart:(id)sender
{
    SubSlide1Hoofdstuk3 *switchactie = self.subslide1;
    UIImageView *wit    = switchactie.imageWit;
    UIImageView *zwart  = switchactie.imageZwart;

    if(zwart.hidden == YES) {
        NSLog(@"Image black is hidden!");
    } else if(wit.hidden == YES) {
        NSLog(@"Image white is hidden!");
    } else {
        NSLog(@"Can't say... :(");
    }
}
于 2012-04-06T09:55:39.177 に答える