0

UIImageViewビアストーリーボードを作成し、@propertyそれをに追加すると、ビアまたはのどこからでもViewController.hアクセスできます。UIImageViewViewController.m[self UIImageView]self.UIImageView

しかし、以下のようにUIImageViewプログラムで作成viewDidLoadすると、外部からアクセスできなくなったようですviewDidLoad

UIImageView *prevImgView = [[UIImageView alloc] init];
UIImageView *currImgView = [[UIImageView alloc] init];
UIImageView *nextImgView = [[UIImageView alloc] init];

NSArray *imageViews = [NSArray arrayWithObjects:prevImgView, currImgView, nextImgView, nil];

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
[self.view addSubview: scrollView];

CGRect cRect = scrollView.bounds;
UIImageView *cView;

for (int i=0; i<imageViews.count; i++) {
    cView = [imageViews objectAtIndex:i];
    cView.frame = cRect;
    [scrollView addSubview:cView];
    cRect.origin.x += cRect.size.width;
}

そのため、後でUIImageView作成した画像のいずれかに表示されている画像を変更したい場合viewDidLoad、アクセスできないようです。誰かが私が間違っていることを知っていますか?

4

2 に答える 2

1

AgnosticDevがここで言おうとしている答えは、ビューコントローラの.hファイルにivarを追加することです...例:

@implementation YHLViewController : ViewController
{
    UIImageView * currImageView;
}

次に、 " viewDidLoad"メソッドで、次の方法で割り当てて初期化できます。

currImageView = [[UIImageView alloc] init];

ビューコントローラの他の場所からアクセスできます。

于 2013-01-27T06:18:40.467 に答える
1

ヘッダーファイルにUIImageViewを作成する必要があります。そうすれば、残りのビュー全体で使用できるようになります。ただし、viewDidLoadのビューに追加する必要があります。

         Header
         UIImageView *image;

         Main // ViewDidLoad
         image = [UIImageView alloc] .....
         [self.view addSubView image];


         Main Function .....
         [image setImage ....
于 2013-01-27T06:07:33.400 に答える