从 UICollectionViewCell 使用 UICollectionView

2023-11-25

我有一个自定义 UICollectionViewCell ,其内容也是一个集合,我想使用 UICollectionView 来显示其内容。这可能吗?我将如何实现这个目标?我制作了自定义 UICollectionViewCell 也继承自 UICollectionViewDataSource 并定义了 UICollectionView 内部属性,但事情没有按预期工作。任何想法?


以下是如何完成此操作的示例。我们有一个带有标准 UITableViewController、自定义 UITableViewCell 和单独的自由格式自定义 UIViewController 的故事板。

// ContainerCell.h
@class CellContentViewController;
@interface ContainerCell : UITableViewCell
@property (nonatomic, strong) CellContentViewController*  contentViewController;
@end

// CellContentViewController.h
@interface CellContentViewController : UIViewController
@property (nonatomic, weak) IBOutlet UILabel*   nameLabel;
@end

// CellContentViewController.m
@interface CellContentViewController ()    
- (IBAction)didTapButton:(UIButton*)sender;    
@end        
@implementation CellContentViewController           
- (void)didTapButton:(UIButton *)sender
{
    NSLog(@"Button for %@!", self.nameLabel.text);
}
@end

// MyTableViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString* const kCellIdentifier = @"ContainerCell";
    ContainerCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier forIndexPath:indexPath];        
    if (!cell.contentViewController)
    {
        UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

        CellContentViewController* contentViewController= [storyboard instantiateViewControllerWithIdentifier:@"CellContentViewController"];

        cell.contentViewController = contentViewController;
        [cell.contentView addSubview:cell.contentViewController.view];
    }        
    cell.contentViewController.nameLabel.text = self.names[indexPath.row];                
    return cell;
}

结果是自定义视图控制器响应按钮点击。当视图在表中出现和消失时,不会调用视图生命周期方法。

我这样做是为了概念证明,但对于我正在从事的项目,我没有看到任何真正的优势CellContentViewController是一个视图控制器而不仅仅是一个自定义视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 UICollectionViewCell 使用 UICollectionView 的相关文章

随机推荐

  • 如何从Spark RDD中的特定分区获取数据?

    我想访问 Spark RDD 中特定分区的数据 我可以按如下方式获取分区的地址 myRDD partitions 0 但我想从中获取数据myRDD partitions 0 分割 我尝试了官方 org apache spark 文档但找不到
  • Ubuntu 13.04:如何构建Monodevelop 4.0.1?

    我从git下载了源码 git clone git github com mono monodevelop git 和依赖项 cd monodevelop git submodule init git submodule update 我设置
  • 如何在 Bash 中解析 XML?

    理想情况下 我希望能够做的是 cat xhtmlfile xhtml getElementViaXPath path html head title sed e s g gt titleOfXHTMLPage txt 这实际上只是一个解释Y
  • C++编译时函数执行

    我的代码中有字符串标签 它们被转换为数字并用于搜索标签值结构中的值 我有这样的事情 void foo type value search SomeTag 其中搜索定义如下 type search const char tag return
  • 如何使用 jQuery 获取表格中的单元格 () x 和 y 坐标?

    我正在寻找一种获取表格中单元格 X Y 位置的好方法 不要将它与 css position 混淆 我正在寻找笛卡尔坐标系中的 X 和 Y 坐标 众所周知 我们可以使用以下命令获取表格中的特定单元格 grid 0 rows 5 cells 7
  • 使用类上的宏注释创建或扩展伴随对象

    使用 Scala 2 10 2 11 宏天堂注释宏 如何添加或扩展注释类的伴生对象 骨骼 import scala annotation StaticAnnotation import scala reflect macros import
  • 如何处理keras:错误:维度0的切片索引0超出范围

    我使用 keras tensorflow 后端 构建我的 lstm 网络 这是我的代码 from keras models import Sequential Model from keras layers import LSTM Conv
  • 如何在 GridView 中实现条件格式

    我的 aspx 页面上有一个 GridView 它显示由以下类定义的对象集合 public class Item public string ItemName get set public object ItemValue get set
  • 如何在C中对单个字符执行scanf [重复]

    这个问题在这里已经有答案了 在C中 我正在尝试从用户那里获取字符scanf当我运行它时 程序不会等待用户输入任何内容 这是代码 char ch printf Enter one char scanf c ch printf c n ch 为
  • 将项目的不同版本导入到 Eclipse 中

    我在 Eclipse 中有一个项目 现在我想导入另一个具有不同名称和位置的项目 但具有相同的结构 相同的包 很多相同的类 但是当我尝试导入它时 它说 某些项目无法导入 因为它们已经存在于工作区中 如果我想拥有一个项目的两个版本该怎么办 我应
  • MEF 导出是缓存还是每次请求时都会发现?

    如果我有一种类型 MyClass 请注册 Export typeof Myclass 属性 以及 PartCreationPolicy CreationPolicy Shared or PartCreationPolicy Creation
  • 如何从“浏览”选项卡中排除文件夹?

    我正在尝试排除上的几个文件夹ExploreVisual Studio Code 中的选项卡 为此 我添加了以下内容jsconfig json到我的项目的根目录 compilerOptions target ES6 exclude node
  • 如何捕获传单弹出窗口上的点击事件

    我在传单地图上同时打开多个弹出窗口 并且它们可以重叠 如果单击 我想将弹出窗口置于前面 虽然我可以轻松地点击地图map on click function e do something 我似乎无法用弹出窗口做同样的事情 如何捕获 L Pop
  • 带有圆角边缘的 ActionBar

    我想知道 是否可以使我的 ActionBar 具有圆角边缘 更具体地说 仅顶部圆角 左上 右上 我做了一些搜索 但大多数方法都已经过时 对我不起作用 我正在使用 AppCompat 支持库 v22 1 1 我已经制作了我想要实现的目标的图像
  • Next JS - getStaticProps 不返回任何内容

    我正在将 Next js 与上下文 API 和样式组件一起使用 但我似乎无法理解getStaticProps在职的 我读过其他帖子 他们经常谈论习俗 app我确实有 但在使用 context API 之前我从未遇到过这个问题 我也尝试过ge
  • 尝试时从 CultureInfo 中缺少国家和地点

    我需要本地化一个应用程序 并注意到有几个国家 地区没有出现在与cultureInfo 关联的县代码列表中 塞浦路斯就是一个例子 我想可能还有其他例子 如果我需要本地化塞浦路斯的设置 或其他缺失的设置 我将如何重命名我的资源文件 以便它们呈现
  • PHP PDO 多重选择查询始终删除最后一个行集

    我在使用 PDO 语句进行多项选择时遇到了似乎是错误的问题 我正在构建一个包含许多 SELECT 的 SQL 查询 无论它生成多少个 SELECT 语句 最后一个行集都会被删除 这是发生的事情的截断示例 pdo connection stu
  • 强制 C++ 结构紧密包装

    我正在尝试读取二进制文件 问题在于文件的创建者没有花时间将数据结构与其自然边界正确对齐 并且所有内容都包装得很紧 这使得使用 C 结构读取数据变得困难 有没有办法强制struct打包紧 Example struct short a int
  • 如果一个OU包含3000个用户,如何使用DirectorySearcher找到所有用户?

    我使用这段代码 DirectoryEntry objEntry DirectorySearcher objSearchEntry SearchResultCollection objSearchResult string strFilter
  • 从 UICollectionViewCell 使用 UICollectionView

    我有一个自定义 UICollectionViewCell 其内容也是一个集合 我想使用 UICollectionView 来显示其内容 这可能吗 我将如何实现这个目标 我制作了自定义 UICollectionViewCell 也继承自 UI