显示从数组到uiimageview的图像

时间:2012-06-02 12:10:30

标签: objective-c image uiimageview nsmutablearray imageview

  

可能重复:
  access to array object

我有一个数组,其中包含我的xib文件中的图像和imageview。 现在, 我想在我的imageview中查看我的数组包含的第一个对象(图像)。 我试着这几个小时,但我没有成功。我该怎么做??

mt数组减速:

    photoArray = [[NSMutableArray alloc] init];
    PhotoItem *photo1 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"1.jpg"] name:@"roy rest"  photographer:@"roy"];
    PhotoItem *photo2 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"2.jpg"] name:@"roy's hand" photographer:@"roy"];
    PhotoItem *photo3 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"3.jpg"] name:@"sapir first" photographer:@"sapir"];
    PhotoItem *photo4 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"4.jpg"] name:@"sapir second" photographer:@"sapir"];
    [photoArray addObject:photo1];
    [photoArray addObject:photo2];
    [photoArray addObject:photo3];
    [photoArray addObject:photo4];

我尝试使用的代码:

imgView = [[UIImageView alloc] initWithImage:[photoArray objectAtIndex:0]];

谢谢!

2 个答案:

答案 0 :(得分:1)

问题的答案非常简单,如果您不熟悉这一点,请尝试分步进行。

array: photoarray 
imageView in xib : imgView
imgView =[UIImageView alloc]init];
imgView.image=[UIImage imageNamed:[photoarray objectatindex:0]];

这将满足您的问题。

答案 1 :(得分:0)

您的照片数组不包含图片,它包含自定义的PhotoItem对象。你需要从该对象中获取UIImage。我假设你有一个属性集,可能在PhotoItem上命名为照片。你需要打个电话。

imgView = [[UIImageView alloc] initWithImage:[[photoArray objectAtIndex:0] photo]];

// or

imgView = [[UIImageView alloc] initWithImage:[photoArray objectAtIndex:0].photo];

<强>更新

您必须拥有属性才能访问有关对象的信息。您需要重建PhotoItem类,以便为要访问的内容(如照片,名称和摄影师)提供属性。无法按照您尝试的方式访问实例变量。

// PhotoItem.m

@interface PhotoItem : NSObject
{
     // Instance Variables aren't accessible outside of the class.
}

@property (nonatomic, strong) UIImage *photo;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *photographer;

- (id) initWithPhoto:(UIImage)image name:(NSString*)stringA photographer:(NSString*)stringB;

你也需要重写init。

// PhotoItem.h

@implementation PhotoItem

@synthesize photo, name, photographer;

- (id) initWithPhoto:(UIImage)image name:(NSString*)stringA photographer:(NSString*)stringB
{
    self = [super init];
    if (self) {
         photo = image;
         name = stringA;
         photographer = stringB;
    }
}

然后访问它的任何东西

PhotoItem *photo1 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"1.jpg"] name:@"roy rest"  photographer:@"roy"];

photo1.photo // returns UIImage
photo1.name // returns NSString
photo1.photographer // returns NSString

因此,如果它们是数组中的对象,那么它将是

[photoArray objectAtIndex:0] // returns your PhotoItem Object
[[photoArray objectAtIndex:0] photo] // returns that PhotoItem Object then gets the photo out of it returning a UIImage in total.