2014-12-03 32 views
0

我试图把UICollectionview放在扩展的uitableviewcell内,但我不断收到错误。 collectionview也可以拍照并将其存储在collectionview中。我用这个代码:我怎样才能以扩展uitableviewcell内置uicollectionview

- (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声明selelctor addTarget:动作:forControlEvents”在第4行和第5行“无效的方法应该没有返回值”和第11行“不可见@interface为ExpandingCell声明了选择器presentViewController:animated:completion”

我很盼望在这一点上的帮助。所以如果你有帮助,提前谢谢你。

+0

你检查过文件吗? – Andy 2014-12-03 01:41:37

+0

是的,这没有帮助。 – Tstac4 2014-12-03 01:49:40

+0

你是如何知道addTarget方法的?它不在UICollectionViewCell的文档中。 – Andy 2014-12-03 01:58:08

回答

0

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

0

貌似要实现以下目标:

  1. 用户拥有的tableview,当用户点击查看表行,应用程序呈现的图像拾取
  2. 用户从选择数量的图像库
  3. 然后选择的所有图像都在其中嵌入的tableview

如果该假设是正确的扩展单元内的集合图所示,你必须:

  1. 实施didSelectRowAtIndexPath方法的实现代码如下代替的CollectionView
  2. 在这个方法中,调用uploadPicture方法的实现代码如下控制器创建与的CollectionView细胞的
  3. 工具imagePickerController的didFinishPickingMediaWithInfo获得所选图像
  4. 通话的cellForRowAtIndexPath拥有选定的图像。

希望这会有所帮助。

+0

我不像目标C那么好,因为我需要为此而努力。所以我不确定你的意思在第一点。如果你有时间今天也许给我发电子邮件,并帮助我? ([email protected]) – Tstac4 2014-12-03 17:08:59