UICollectionViewCell 按固有大小展开/折叠

2023-11-26

I have a collection view with a custom flow layout, and many different cells of different height. The width of the collection view changes on device rotation, so the width of cells must change accordingly. For this to work, I implemented “sizeForItemAtIndex” method, and return different sizes depending on current interface orientation. Most of the cells do not change their height, however, there is one cell that I want to expand and collapse whenever the user taps on it. You can assume that the cell only has one UILabel with one or more lines of text. When the cell appear for the first time the number of lines is set to 1, and when user taps on the cell the number of lines is set to 0, and here the cell should use the intrinsic size of the label to change it’s height automatically. How can I achieve this effect? Here is an example of what it should look like: enter image description here


按着这些次序:

1)。创建一个名为的布尔变量isExpanded管理展开/折叠

2.) 将目标和操作添加到显示更多按钮

[yourCellName.btnShowMore addTarget:self action:@selector(ShowMoreButtonClicked) forControlEvents:UIControlEventTouchUpInside];

3.) 在用于管理高度的 sizeForItemAtIndexPath 中,添加:

 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{

if (isExpanded && indexPath.row == 0) {
        return CGSizeMake(CGRectGetWidth(self.view.frame), calculated height for the expanded cell);
    }
   return CGSizeMake(CGRectGetWidth(self.view.frame), default height);
}

4.) 然后在 ShowMoreButtonClicked 方法中

- (void)ShowMoreButtonClicked{
    if (isExpanded) {
       isExpanded = FALSE;
       [collection_viewCus reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:0]]];

    }
    else {
       isExpanded = TRUE;
       [collection_viewCus reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:0]]];
   }}

5.) 将此行添加到您的 cellForItemAtIndexPath 中

 [yourCellName layoutIfNeeded];

6.) 构建并运行

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

UICollectionViewCell 按固有大小展开/折叠 的相关文章

  • Xcode 9.2 的正确应用程序图标 (appicon) 命名约定是什么?

    我从以下网站下载了一组 23 个 iOS 应用程序图标https makeappicon com https makeappicon com具有以下文件名 email protected cdn cgi l email protection
  • 渐变方向从左到右

    我完全被这个问题难住了 它应该如此简单 以至于让我发疯 我正在使用这个苹果反射教程 苹果反射示例 http developer apple com library ios samplecode Reflection Listings MyV
  • iOS SecItemCopyMatching RSA 公钥格式?

    我正在尝试从已生成的密钥对 两个SecKeyRefs 以便通过线路发送 我所需要的只是一个简单的 modulus exponent 对 它应该正好占用 131 个字节 模数为 128 指数为 3 但是 当我获取关键信息时NSData对象 我
  • sizeToFit 运行异常

    我有一段代码 每次发生后端数据库更改时都会执行 本质上我在父视图中有一个标签 标签由许多状态消息之一更新 每个状态消息位于不同的行上 并以换行符 n 结尾 每条状态消息只能在一行上 并且不能过多 我遇到的问题是 当视图首次重新加载时 一切正
  • 定位精度定义 - iOS

    iOS 上返回的 准确性 或 不确定性 的统计意图是什么 即使是近似值 例如 Android 文档对其返回的精度数字进行了解释 从这个意义上讲 它大约是一个标准差 我们将准确度定义为 68 置信度的半径 换句话说 如果 您以该位置的纬度和经
  • 从 iOS 设备向 Google App Engine 进行身份验证

    我正在开发一个 iPhone 应用程序 它使用 Google 应用程序引擎来托管后端 我需要通过 Google 进行身份验证 但我似乎无法找到从我的应用程序中执行此操作的方法 看来我要做一个UIWebView让用户登录到我从 Google
  • 在 UITableViewCell 内动态更改标签宽度

    我正在尝试建立一个自定义表格视图 正如您在图片中看到的 我在故事板一侧将标签的宽度默认设置为 160 磅 并在加载表格时动态更改宽度 我通过修改 cellForRowAtIndexPath 委托方法来实现此目的 因此 根据日期的长度 我设置
  • 添加 AFNetworking 后出现 APPLE MACH-O 链接错误

    只是将 AFNetworking 添加到我的项目中 在 B R 后 我收到如下错误 Undefined symbols for architecture i386 SecCertificateCopyData referenced from
  • 设置UITextField的光标位置

    我查看了单点触控示例并尝试过 var range new NSRange selectionStart 1 NumberTextField SelectedTextRange IndexedRange GetRange range 但这会在
  • iOS - 在 UITabBar 上方获取所需的阴影

    我试图让我的标签栏阴影看起来像这张图片中看到的那样 这样做的最佳方法是什么 我正在使用 Objective C Thanks 您可以使用以下代码为任何 UI 对象提供阴影 tabBar layer shadowOffset CGSize w
  • 如何在 iOS 上更改设备音量 - 而不是音乐音量

    我想更改 iOS iPhone 上的设备音量 我知道我可以使用以下几行更改音乐库的音量 implement at first MediaPlayer framework MPMusicPlayerController musicPlayer
  • Objective C 宏附加到字符串

    我认为这是一件非常简单的事情 但由于我是 iOS 开发和 Objective C 的新手 所以我无法弄清楚 define RESTFUL PATH PREFIX https gogch com gch restful define LOGI
  • iOS5 和 Facebook API

    我想将我的应用程序与 Facebook 集成并从 github 下载 Facebook ios sdk 但是 该 sdk 适用于 Xcode 4 0 代码库 我正在使用 Xcode 4 2 for iOS 5 beta 5 应用程序 是否有
  • UINavigationBar 滑开而不是留在原处

    我创建了演示项目来展示问题 我们在 UINavigationController 中有两个视图控制器 MainViewController这是根 class MainViewController UIViewController lazy
  • 增量后清除推送通知徽章

    我正在研究 iPhone 中的推送通知 当我收到推送通知时 它在我的应用程序图标上显示 1 下次显示 2 3 4 如果我打开应用程序 它是 0 下次它应该是 1 2 3 4 但它显示最后一个数字和 1 我想在打开应用程序后重置推送通知徽章
  • 移动设备上的 TensorFlow(Android、iOS、Windows Phone)

    我目前正在寻找不同的深度学习框架 特别是用于训练和部署卷积神经网络 要求是 它可以在带有 GPU 的普通 PC 上进行训练 但训练后的模型必须部署在三个主要的移动操作系统上 即 Android iOS 和 Windows Phone Ten
  • 如何在没有 MFMessageComposeViewController 的情况下发送和接收短信?

    我想发送和接收短信而不显示MFMessageViewController从我的申请中 有人能告诉我这怎么可能吗 不可能 除非您使用第 3 方 api 发送 接收短信
  • iOS 11 中的密码自动填充快速输入栏

    iOS 11 中引入了一项新功能 应用程序密码自动填充 此功能允许用户直接从键盘快速输入栏使用其应用程序中保存的密码 https techcrunch com 2017 06 08 ios 11s new password autofill
  • 如何删除以前的 ViewController

    我是一名学生 对编程还很陌生 我正在尝试在业余时间学习 Objective C Swift 我使用 spriteKit 和 swift 制作了一个游戏 有多个菜单 场景 我正在尝试从一个视图控制器转换到另一个视图控制器 为此 我使用了以下代
  • GCD 与自定义队列

    我想知道这两者的性能有什么区别 dispatch async dispatch get global queue DISPATCH QUEUE PRIORITY HIGH 0 perform complex operation dispat

随机推荐

  • 如何自定义UIActivityViewController共享菜单的示例?

    有没有例子说明如何定制UIActivityViewController用我自己的图标分享菜单IBAction 我见过这个 id initWithActivityItems NSArray activityItems applicationA
  • Spark Streaming:StreamingContext不读取数据文件

    我是 Spark Streaming 的新手 我正在尝试使用 Spark shell 开始使用它 假设我在spark 1 2 0 bin hadoop2 4的根目录下放置了一个名为 dataTest 的目录 我想在 shell 中测试的简单
  • Service Worker 中的 XMLHttpRequest

    我正在尝试在 chrome 上创建一个推送通知系统 我有一个从 mysql 获取数据并回显 JSON 的 php 现在我想调用一个函数 getJsonCode 当推送通知到达时它会被激活并读取 JSON 数据 在我的 Service Wor
  • 如何手动将 Angular 表单字段设置为无效?

    我正在处理登录表单 如果用户输入无效凭据 我们希望将电子邮件和密码字段标记为无效 并显示一条消息 提示登录失败 如何从可观察的回调中将这些字段设置为无效 模板
  • Hibernate 忽略 fetchgraph

    这是我的实体 public class PersonItem implements Serializable Id Column name col1 private String guid Column name col2 private
  • 如何通过将值与公共键相加来从字典列表创建单个Python字典?

    我有一个字典列表 例如 dictList a 3 b 9 c 4 a 9 b 24 c 99 a 10 b 23 c 88 所有字典都有相同的键 例如a b c 我希望创建一个具有相同键的字典 其中的值是原始列表中所有字典中具有相同键的值的
  • 如果没有输入,一定时间后退出循环

    我只是想知道是否可能以及如何实现此功能 如果没有用户输入 我们将退出循环 例如 如果用户在 1 分钟后没有输入任何内容 我想退出循环 这是我的 C 代码 include
  • 如何直接链接到应用商店应用更新页面?

    我正在完成一个 iPhone 应用程序 我使用外部服务器通知用户我的应用程序何时有可用更新 并允许他们从应用程序内单击以直接转到应用程序商店中的更新 问题是 我似乎无法弄清楚直接转到更新的链接格式 我发现了一种旧的使用方法查看软件更新 在另
  • 在 javascript 中使用另一个 fetch 中的 fetch

    我想获取一个 api 然后调用另一个 api 在 javascript 中使用这样的代码是否明智 fetch url method get then function response response json then function
  • 新 Twitter API 1.1 的身份验证

    我有一个应用程序需要显示关注者和关注者的数量 users show json 对于公共页面上的随机用户 不需要身份验证 使用 Twitter API 1 0 这非常容易 因为请求不需要身份验证 使用新的 Twitter API 1 1 不再
  • Sql Server FILESTREAM 总文件大小

    是否有一个查询可以获取磁盘上 FILESTREAM 文件夹中文件的总文件大小 以下查询将返回以字节为单位的长度filestreamcolumn column SELECT SUM DATALENGTH filestreamcolumn FR
  • 使用另一个对象更新 javascript 对象,但仅更新现有的键

    Javascript 或 Lodash 中是否有一个函数 我可以在其中使用另一个对象的值 更新 一个对象 但是无需添加新密钥 var foo a 0 b 1 var bar b 2 c 3 像 update foo bar 一样 覆盖 更新
  • JAX-RS - 没有根节点的 JSON

    我有一个宁静的网络服务 响应是 cities id 1 name City 01 state A1 id 2 name City 02 state A1 但我想要这个 id 1 name City 01 state A1 id 2 name
  • JOptionPane 输入到 int

    我试图让 JOptionPane 获取输入并将其分配给 int 但我遇到了变量类型的一些问题 我正在尝试这样的事情 Int ans Integer JOptionPane showInputDialog frame Text JOption
  • 如何从写成单词的数字中读取值?

    众所周知 数字可以用数字来书写 也可以用名称来称呼 虽然有很多将 123 转换为 123 的示例 但我找不到如何将其反向转换的好示例 一些注意事项 基数 名义或序数 一 和 第一 常见的拼写错误 四十 四十 数百 千 2100 gt 二十一
  • 如何知道鼠标左键是否被按下

    我正在使用 PyAutoGUI 库 如何知道鼠标左键是否被按下 这就是我想做的 if leftmousebuttonpressed print left else print nothing 我是 PyAutoGUI 的作者 我可以确认当前
  • Android SDK路径未指定

    我已经安装了 android studio 但我在继续操作时遇到问题 问题是Android SDK路径未指定 这是什么意思 我需要下载什么东西还是什么 Android SDK 有问题 请执行以下步骤 但首先确保您的电脑已连接到互联网 打开你
  • Twitter资料页iOS Swift剖析(UIScrollView中的多个UITableView)

    嗨 他们到底是如何实现这个的 Twitter 个人资料页面有几个教程 但他们并没有处理所有的可能性 首先 当您滚动顶部或底部任何位置时 顶部视图开始滚动 直到分段控件 到达页面顶部 然后滚动不会停止 子表开始滚动 直到触地并在中间表视图开始
  • Linux 动态链接器中的“无版本信息可用”错误是什么意思?

    在我们的产品中 我们提供了一些动态链接到 libpam 等系统库的 Linux 二进制文件 在某些客户系统上 当程序运行时 我们会在 stderr 上收到以下错误 authpam lib libpam so 0 no version inf
  • UICollectionViewCell 按固有大小展开/折叠

    I have a collection view with a custom flow layout and many different cells of different height The width of the collect