我如何以编程方式将 uicollectionview 放在扩展的 uitableviewcell 中
Posted
技术标签:
【中文标题】我如何以编程方式将 uicollectionview 放在扩展的 uitableviewcell 中【英文标题】:how can i programmatically put a uicollectionview within an expanding uitableviewcell 【发布时间】:2014-12-03 01:33:36 【问题描述】:我正在尝试将 UICollectionview 放在扩展的 uitableviewcell 内,但我不断收到错误。集合视图也应该拍照并将它们存储在集合视图中。我使用了这个代码:
- (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 行声明了选择器 addTarget:action:forControlEvents”。第 5 行“void 方法不应返回值”和第 11 行“ExpandingCell 没有可见的@interface声明选择器 presentViewController:animated:completion"
此时我迫切需要帮助。如果您能提供帮助,请提前感谢您。
【问题讨论】:
你检查文档了吗? 是的,没有任何帮助。 你是怎么知道 addTarget 方法的?它不在 UICollectionViewCell 的文档中。 我点击了红色的错误指示器,这就是它所说的。我不太确定这意味着什么,所以我不知道如何解决它。 错了,您在didSelectItemAtIndexPath
中对单元格进行出队。而且它是一个 void 方法,所以你不能在这里返回一个单元格。
【参考方案1】:
这里有很多问题。 第 4 行 - 您在 didSelectItemAtIndexPath 方法中,因此您知道用户已经触摸了单元格。您不需要连接目标操作。去掉这一行,直接调用uploadPicture:。 第 5 行 - didSelectItemAtIndexPath 是一个 void 方法,因此您不应尝试返回单元格。删除此行。 第 11 行 - 错误表明您的 uploadPicture 方法不在视图控制器中。因此它不能呈现视图控制器。您需要将此方法移动到您的视图控制器或重构您的代码,以便您从视图控制器中呈现。
【讨论】:
【参考方案2】:看起来您想要实现以下目标:
-
用户有一个表格视图,当用户点击表格视图中的一行时,应用会显示一个图像选择器
用户从库中选择了一些图像
然后,所有选定的图像都会显示在集合视图中,该集合视图嵌入在表格视图的展开单元格中
如果这个假设是正确的,你必须:
-
为 tableview 而不是 collectionview 实现 didSelectRowAtIndexPath
在该方法中,调用uploadPicture方法
实现 imagePickerController 的 didFinishPickingMediaWithInfo 来获取选中的图片
调用 tableview 控制器的 cellForRowAtIndexPath 以创建具有所选图像的 collectionview 单元格。
希望这会有所帮助。
【讨论】:
我在目标 c 方面没有我需要的那么好。所以我不确定你在第一点是什么意思。如果你今天有时间,可以给我发电子邮件,帮助我吗? ( t.stac4@yahoo.com )以上是关于我如何以编程方式将 uicollectionview 放在扩展的 uitableviewcell 中的主要内容,如果未能解决你的问题,请参考以下文章