2013-03-22 89 views
0

我有一个样本代码在从下面的代码在GridView来显示图像...但它为所有的图像显示相同的图像...该方法是以下..阵列图像的显示

- (MMGridViewCell *)gridView:(MMGridView *)gridView cellAtIndex:(NSUInteger)index 
{ 
MMGridViewDefaultCell *cell = [[MMGridViewDefaultCell alloc] initWithFrame:CGRectNull]; 
cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", index]; 
    cell.imageView.image = [UIImage imageNamed:@"cell-image.png"]; 
// this needs to be change load from the array 
} 


- (NSInteger)numberOfCellsInGridView:(MMGridView *)gridView 
{ 
return 64; 
} 

现在我有图像的阵列,需要投入的是cellAtIndex方法,但我应该怎么做才能转化为对于所有图像放入数组..

数组就像

-(void)viewDidLoad{ 
_imageDatas = [DelegateClass mag]._imageData; 
_finaImages = [[NSMutableArray alloc]init]; 
} 
_finaImages = [[NSMutableArray alloc]init]; 
for (int i = 0; i < [_imageDatas count]; i++) { 

    [_finaImages addObject:[self loadImage:i]]; 
} 

- (UIImage *)loadImage:(int)index { 
@try { 
    UIImage* image = [[UIImage alloc] initWithData:[_imageDatas objectAtIndex:index]] ; 

    return image; 
} 
@catch (NSException *exception) { 
    NSLog(@"ImageFullScreenViewController - loadImage Exception Name = %@ Exception Reason = %@",[exception name],[exception reason]); 
    } 

如何从下面的阵列从数据到上述imageView.image

+0

让我指出在第四行有一个额外的}你的viewDidLoad,它应该使它无法编译。 – WolfLink 2013-03-22 05:40:30

回答

2

试试这个

- (MMGridViewCell *)gridView:(MMGridView *)gridView cellAtIndex:(NSUInteger)index 
{ 
MMGridViewDefaultCell *cell = [[MMGridViewDefaultCell alloc] initWithFrame:CGRectNull]; 
cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", index]; 
    cell.imageView.image =[imagesArray objectAtIndex: index]; 
// this needs to be change load from the array 
} 
+0

- [ArtOfSleeping _isResizable]:无法识别的选择器发送到实例0x88fb960 2013-03-22 15:14:32.859杂志[2822:17c03] ***由于未捕获的异常'NSInvalidArgumentException',原因:' - [ArtOfSleeping _isResizable ]:无法识别的选择器发送到实例0x88fb960' – user2102546 2013-03-22 09:46:45

+0

确保imagesArray具有UIImage对象..如果您正在放置ArtOfSleeping对象的对象,那么它可能会导致该问题。 – BhushanVU 2013-03-22 09:50:05

1
- (MMGridViewCell *)gridView:(MMGridView *)gridView cellAtIndex:(NSUInteger)index 
{ 
    MMGridViewDefaultCell *cell = [[MMGridViewDefaultCell alloc] initWithFrame:CGRectNull]; 
    cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", index]; 
    // Use this 
    cell.imageView.image = [self loadImage:index]; 
} 
2

替换此:

cell.imageView.image = [UIImage imageNamed:@"cell-image.png"]; 

有了:

cell.imageView.image = (UIImage *)[_finaImages objectAtIndex:index]; 
+0

- [ArtOfSleeping _isResizable]:无法识别的选择器发送到实例0x88fb960 2013-03-22 15:14:32.859杂志[2822:17c03] ***由于未捕获的异常'NSInvalidArgumentException',原因:' - [ArtOfSleeping _isResizable ]:无法识别的选择器发送到实例0x88fb960' – user2102546 2013-03-22 09:46:02

+0

请'NSLog(@“%@',_ finalImages);'如果你的上面的代码是正确的,那么它将工作 – 2013-03-22 09:48:35

+0

事情是图像在url中并从web服务从imageDatas数组,它显示捕捉错误,当我试图运行代码 – user2102546 2013-03-22 10:29:15