2012-05-05 9 views
3

私は私のサブビューが配列...私がしたいことは、アレイからの私のメインビューにこれらのサブビューを配置することであるに保存されている....アレイからサブビューをどのようにuiviewに追加するのですか?

for(int i=0;i<[imageViewArray count];i++) 
    { 
     NSLog(@" image array count is %d",[imageViewArray count]); 
     // countlayers= countlayers+1; 
     // [canvasView insertSubview:[imageViewArray objectAtIndex:i] atIndex:countlayers]; 
     [canvasView addSubview:[imageViewArray objectAtIndex:i]]; 
    } 

あなたは私がやっているものを私に伝えることができ、間違った

+2

まず、高速列挙を使用することをお勧めします –

+0

canvasViewとは何ですか?画像を追加したい場合は、画像を表示したい位置にメインビューのimageViewsを置くことができます/ – rishi

+1

あなたの質問を教えてください。canvasViewはUIimageViewとUiviewですか? – Deepesh

答えて

0

imageViewArrayには実際に初期化されたビューが含まれていて、それらのビューに既に正しいframe属性がある場合は、あなたのコードはよりエレガントなものであっても何も問題はありません。

もちろん、canvasViewが実際に初期化され、画面に表示されていることを確認する必要があります。顕著な何かにそのbackgroundColorを設定してみてください。

canvasView.backgroundColor = [UIColor greenColor]; 

あなたはcanvasViewが実際に表示されていることを確認したら、私は配列立派介さなり、高速列挙体を使用して、そのことを確認するために、新しいサブビューをログに記録することをお勧めフレームはあなたが望むようなものです。

for (UIView *imageView in imageViewArray) //this is fast enumeration. You can get it through code completion by typing forin 
{ 
    NSLog(@"%@", imageView); //let's take a look at the imageView. What is its frame? 
    [canvasView addSubview:imageView]; 
} 
+0

imageviewArrayは、メインビューまたはself.viewに追加される初期化されたuiviewがある配列です –

+0

次にコードを実行してみてください。あなたのものよりもうまくいくわけではありませんが、ログ出力は何が間違っているのか理解するのに役立ちます。 – fzwo

0

キャンバスに画像を追加するために使用される列挙体imageViewArrayを使用してビューを表示し、おそらく画像の設定枠も表示されません。

for (UIImageView *imageView in imageViewArray) //enumeration. 
{ 
    //let's set frame for image view before adding to canvasView 
    [imageView setFrame:CGRectMake(x,y,w,h)]; 
    //Also make sure imageView has image or not 
    if(imageView.image) 
    [canvasView addSubview:imageView]; 
}