0

CGRect フレーム内に作成された画像の配列があります

.h ファイル:

NSMutableArray *imageArray;

.m ファイル:

 myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[imageArray addObject:myImage];

myImage 変数からフレームを直接呼び出すと、正しい値が得られます。

NSLog(@"Frame x:%f y:%f w:%f h:%f", myImage.frame.origin.x, myImage.frame.origin.y, myImage.frame.size.width, myImage.frame.size.height);

出力: `frame x:226.000000 y:226.000000 w:226.000000 h:334.000000`

しかし、配列を介して画像を呼び出すと、間違った値が返されます:

UIImageView *anImage = [imageArray objectAtIndex:5];        
NSLog(@"frame x:%f y:%f w:%f h:%f", anImage.frame.origin.x, anImage.frame.origin.y, anImage.frame.size.width, anImage.frame.size.height);

出力:frame x:0.000000 y:0.000000 w:0.000000 h:0.000000

私は何を間違っていますか?

4

1 に答える 1

0

あなたが間違っているかもしれないのは、配列の初期化です

NSMutableArray *imageArray=[[NSMutableArray alloc]initWithCapacity:5];

試した

NSMutableArray *imageArray=[[NSMutableArray alloc]initWithCapacity:5];
UIImageView *  myImage ;
CGRect myImageRect=CGRectMake(10, 10, 10, 10);

for (int i=0; i<5; i++) {
    myImage= [[UIImageView alloc] initWithFrame:myImageRect];
    [imageArray addObject:myImage];

}
UIImageView *anImage = [imageArray objectAtIndex:3];
NSLog(@"%@",NSStringFromCGRect(anImage.frame));

結果

2013-04-03 01:10:49.114 TrialsError[95088:11303] {{10, 10}, {10, 10}}
于 2013-04-02T19:42:40.387 に答える