2012-06-02 2 views
0

Можно создать дубликат:
access to array objectпоказать изображения из массива UIImageView

У меня есть массив, который содержит изображения и ImageView в моем файле XIb. сейчас, Я хочу просмотреть в своем изображении первый объект (изображение), который содержится в моем массиве. Я попытался сделать это пару часов, но мне это не удалось. как мне это сделать??

мт замедления массива:

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]]; 

спасибо !!

+0

Я вижу, что вы задали очень похожий вопрос, на который я ответил. http://stackoverflow.com/questions/10864893/access-to-array-object/10868444#10868444 Вы тоже этого не приняли. Купите книгу по Objective-C/iOS и прочитайте их. Вам не нужно будет задавать такие вопросы, и это значительно улучшит ваше понимание кодирования! – Ben

ответ

0

Ваш массив фотографий не содержит изображений, он содержит пользовательские объекты PhotoItem. Вам нужно захватить UIImage из этого объекта. Я предполагаю, что у вас есть свойство, возможно, названное фото на PhotoItem. Вы должны это назвать.

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

// or 

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

UPDATE

Вы должны иметь свойства для доступа к информации об объекте. Вам необходимо перестроить свой класс 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; 

И вам нужно переписать вы, возможно, тоже.

// 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. 
+0

Я пробовал, но он все еще не работает – APRULE

+0

Тогда вам нужно показать больше кода. Отправьте интерфейс для PhotoItem. –

+0

здесь есть PhotoItem.h: 'code' @interface PhotoItem: NSObject { UIImage * imageView; NSString * photoNameLabel; NSString * photographerNameLabel; UIButton * viewPhoto; } // - (id) makePhotoItemWIthPhoto: (UIImage *) название изображения: (NSString *) photoName фотограф: (NSString *) photographerName; - (id) initWithPhoto: (UIImage *) название изображения: (NSString *) photoName фотограф: (NSString *) photographerName; – APRULE

1

Ответ на ваш вопрос очень просто попытка сделать это в если вы новичок в этом.

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

Это послужит цели вашего вопроса.

Смежные вопросы