enter image description here

How to Create this type of tableview in iOS??

在这里,如果我们点击第一行"Account",它会自动滚动显示更多的行,如图所示.

推荐答案

您可以将Account作为一个单元格,点击后展开,显示三个按钮("配置文件"、"激活帐户"、"更改密码"),但这会产生一个问题:点击三个按钮中的每一个都将被视为"用户 Select 的Account单元格",并触发-tableView:didSelectRowAtIndexPath:,从而导致单元格展开/折叠.

或者,您可以将每个隐藏选项("配置文件"、"激活帐户"、"更改密码")设置为单独的表视图单元格.但我不知道你怎么能使三个细胞as a wholeinflating 和收缩(而不是每个细胞从零高度分别inflating 到完全inflating ).

So, perhaps the best solution is to:

  1. even个单元格(索引:0,2,4…)实现"菜单标题"和"切换菜单打开/关闭"的功能(指向下面描述的相关奇数单元格).
  2. 在奇数索引(1、3、5…)中,交错(最初折叠的)"菜单体"单元格,每个选项(例如"配置文件"、"激活帐户"、"更改密码")都有一个按钮,垂直排列.使用目标操作响应用户 Select 的每个选项/按钮.
  3. 实现table view delegate方法,以便只 Select 偶数单元格(菜单标题),并实现 Select 逻辑以展开/折叠相应的奇数单元格(内部-tableView:didSelectRowAtIndexPath:).例如, Select 索引0处的单元格("帐户")会导致展开/折叠索引1处的单元格(带有选项"配置文件"、"激活帐户"、"更改密码"的菜单).

这并不是UITableView最优雅的用法,但可以完成任务.

Swift相关问答推荐

操作员如何点逻辑非(.!)在Swift工作?

从AppKit打开SwiftUI设置

声明一个协议时使用和不使用任何单词有什么区别?

如何使用AsyncTimerSequence获取初始时钟,然后在指定的时间间隔内开始迭代?

如何获取嵌套数组中项的路径以修改数组?

SwiftData:非法try 在不同上下文中的对象之间建立关系

Swift数据关系

类型擦除`AsyncMapSequence, Element>`

如何从我的 macOS 应用程序打开 (.log) 文件?

数组中某些元素的总和

创建 ViewModel 时 iOS 模拟器上的黑屏

用户输入以更改通过点击生成的形状大小

Swift Swiftui - 将 colored颜色 保存到 UserDefaults 并从 @AppStorage 使用它

如何获得不同的插入和移除过渡动画?

引用类型(类)不需要但 struct 需要的可识别 id

SwiftUI Observed Object 在发布值更改时未更新

Swift - 导入我的 swift 类

无法推断泛型参数的参数

在 xcode8 中找不到 ModuleName-Swift.h 文件

转换为 swift 3 后,视图控制器中出现奇怪的通用函数