0

さて、私はXCodeとObjective-Cでのプログラミングに不慣れで、質問があります。

Storyboard Builderのもののドラッグアンドドロップ機能を使用して、通常はUIImageViewを追加できます。次に、コントロールのドラッグアンドドロップを使用して、関連するViewControllerへの接続を作成することにより、コードでアクセスできます。次に、アウトレットを作成できます。次に、@ property行を使用して*.hファイルで宣言され、*。mファイルで合成されます。

しかし、より複雑なビューがあり、すべてを画面にドロップアンドドラッグするのに時間がかかりすぎる場合や、実行中にオブジェクトの位置を変更したい場合はどうなりますか?

ViewDidLoadメソッドでこれを使用してみました:

NSMutableArray *mutableArray = [NSMutableArray array];
UIImage * pic = [UIImage imageNamed: @"Blue.png"];
for (int x = 0;x<10;x++){
    for (int y =0;y<10;y++){
        UIImageView *imageView = [[UIImageView alloc] initWithImage:pic];
    imageView.frame =CGRectMake(x*23,y*41,32,41);
[mutableArray addObject:imageView];
    }
}

これは、UIImageViewのグリッドを作成し、それらをNSMutableArrayに保持することを望みましたが、画面に何も表示されません。ドラッグアンドドロップと同様のプロセスをコードでどのように実行しますか?私は何も合成しておらず、UIImageViewのインスタンスを1つだけ宣言していることに気付きましたが、宣言をforループに入れると、同じ名前の複数の変数が作成されるため、文句を言うだろうと思いました。ループを使用して数行のコードでUIImageViewsのロードを作成する方法はありますか?「image1」、「image2」などのポインタ変数の識別子として使用されるスティングを編集するだけかもしれませんが、文字列型変数を識別子の名前として使用する方法がわかりませんでした。

PS-CGRectMakeプロシージャをグーグルで検索しました。パラメータは(x座標、y座標、幅、高さ)です。

どんな助けでも大歓迎です:)。

4

2 に答える 2

1

それらをサブビューに追加する必要があります。

[self.view addSubview:imageView];

それらを配列に追加する代わりに、タグを使用して個人を識別することができますがUIImageView、それはすべてあなたが好むものに依存します。

UIImage * pic = [UIImage imageNamed: @"Blue.png"];
int tagInt=1;
for (int x = 0;x<10;x++){
    for (int y =0;y<10;y++){
        UIImageView *imageView = [[UIImageView alloc] initWithImage:pic];
        imageView.frame =CGRectMake(x*23,y*41,32,41);
        imageView.tag=tagInt;
        [self.view addSubview:imageView];
        tagInt++;
    }
}

次に、個人にアクセスしますUIImageView

UIImageView *imageView = (UIImageView*)[self.view viewWithTag:1];
于 2012-08-22T13:20:59.237 に答える
0

作成したすべてのimageViewオブジェクトをNSMutableArrayに保持しています。それらをビューのサブビューとして追加する必要があります(この場合、ビューはUIViewControllerのビューであると想定しています)。

[self.view addSubview:imageView];
于 2012-08-22T13:16:16.520 に答える