我如何以编程方式将uicollectionview放在扩展的uitableviewcell中

时间:2014-12-03 01:33:36

标签: ios objective-c xcode

我正在尝试将UICollectionview放在一个不断扩展的uitableviewcell中,但我一直在收到错误。 collectionview也假设拍照并将它们存储在collectionview中。我用了这段代码:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath (NSIndexPath *)indexPath
{    
static NSString *cellIdentifier = @"myCell";    
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];  


[cell addTarget:self action:@selector(uploadPicture:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}

- (void)uploadPicture:(id)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:NULL];
}

我得到的错误是“UICollectionViewCell没有可见的@interface声明第4行的selelctor addTarget:action:forControlEvents”和第5行“void方法不应返回值”和第11行“ExpandingCell没有可见的@interface”声明选择器presentViewController:animated:completion“

我现在绝望地寻求帮助。如果你能提供帮助,请提前感谢你。

2 个答案:

答案 0 :(得分:0)

这里有很多问题。 第4行 - 您在didSelectItemAtIndexPath方法中,因此您知道用户已经触摸过该单元格。您不需要连接目标操作。删除此行并直接调用uploadPicture :. 第5行 - didSelectItemAtIndexPath是一个void方法,因此您不应该尝试返回单元格。删除此行。 第11行 - 错误表示您的uploadPicture方法不在视图控制器中。因此它无法呈现视图控制器。您需要将此方法移动到视图控制器或重构代码,以便从视图控制器中显示。

答案 1 :(得分:0)

您希望实现以下目标:

  1. 用户有一个tableview,当用户点击表格视图中的一行时,app会显示一个图像选择器
  2. 用户从库中选择许多图像
  3. 然后,所有选定的图像都显示在嵌入在tableview的扩展单元格中的集合视图中
  4. 如果这个假设是正确的,你必须:

    1. 为tableview而不是collectionview实现didSelectRowAtIndexPath
    2. 在此方法中,调用uploadPicture方法
    3. 实现imagePickerController的didFinishPickingMediaWithInfo以获取所选图像
    4. 调用tableview控制器的cellForRowAtIndexPath创建包含所选图像的collectionview的单元格。
    5. 希望这有帮助。