0

したがって、UIImage を ImagePickerController から NSMutableArray に保存した後、画像を UICollectionView にロードしたいのですが、配列が nil でなくても、セルには何も表示されません。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
  {
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [_imgs addObject:image];
    [picker dismissModalViewControllerAnimated:YES];
    [self.collectionView reloadData];

    NSLog(@"%d", [_imgs count]);

    //[self viewDidLoad];
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    Icon *icon = [collectionView dequeueReusableCellWithReuseIdentifier:@"ICON" forIndexPath:indexPath];

    UIImageView *recipeImageView = (UIImageView *)[icon viewWithTag:100];
    recipeImageView.image = [UIImage imageNamed:[self.imgs objectAtIndex:indexPath.row]];

    icon.image = (UIImage*)[self.imgs objectAtIndex:indexPath.row];
    [icon.deleteButton addTarget:self action:@selector(delete:) forControlEvents:UIControlEventTouchUpInside];
    return icon;
}

@implementation Icon
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
        UIView *insetView = [[UIView alloc] initWithFrame:CGRectInset(self.bounds, 300, 
400)];
        self.image = [[UIImage alloc]init];
        UIImageView *img =[[UIImageView alloc]initWithImage:self.image];
        [self.contentView addSubview:insetView];
        [insetView addSubview:img];
        self.layer.shouldRasterize = YES;
    }
}

セルをラップする ICON クラスというクラスを作成しました。

4

1 に答える 1

0

オブジェクトにタグを設定していないと思うので、UIImageViewアクセスしようとしても何も返されません。UIImageViewviewWithTag

UIImageView *img =[[UIImageView alloc]initWithImage:self.image];
img.tag = 100;
[insetView addSubview:img];
self.layer.shouldRasterize = YES;

うまくいくことを願っています。

于 2013-12-09T12:39:33.350 に答える