我如何以编程方式将 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 中的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将活动主题化为对话?

如何将(以编程方式)谷歌字体添加到 ckeditor

如何以编程方式将 ScrollView 滚动到底部

如何以编程方式将图像放入进度条(WPF)

如何以编程方式将 UIImageView 添加到 UIStackView(故事板)

如何以编程方式将 UIButton 添加到 UIToolBar?