PYScalableTableView Swift层级数据展示支持自适应行高

层级结构的数据展示一直是个挺头疼的事,尤其是要交互好看还得不卡。“swift-tableview 抽屉点击 cell 弹出 n 个子 cell”这个项目就做得比较巧妙,直接在一个 UITableView 里搞出抽屉效果,点一下 cell,子 cell 就滑出来,而且还能一层套一层往下点,像文件夹一样。

滑出的这些 cell 不是死板固定的高度,而是支持自适应行高。意思就是,不管你 cell 里是放图文、富文本还是长文本,它都能自动撑开,内容不会被截断。你可以通过Auto Layout结合tableView(_:heightForRowAt:)让每一行都恰到好处地展示出来,体验挺丝滑的。

你要是做文件目录、组织结构、问卷流程这类层级数据的 UI,用这个项目蛮合适的。它还支持递归展开,也就是点一层能再弹出一层,理论上可以搞成无限级别。关键是它把逻辑封装得比较清晰,改起来也方便,拿来直接套用或参考都不错。

项目叫PYScalableTableView-master,GitHub 上能找到,代码写得比较清楚,有自动高度也有层级控制,适合你去摸一摸 UITableView 自定义的高级用法。如果你平时做业务 UI 比较多,想在交互上玩点花样,可以研究下它是怎么搞的,是 cell 的展开动画和数据驱动更新。

对了,想进一步了解cell 自适应高度的细节,可以参考这篇文章讲得挺清楚的,还顺带提了 Auto Layout 的用法。也别忘了对比下 UICollectionView 的实现方式,比如这个链接有点意思。

如果你正好在做 iOS 列表相关的交互,可以抽空试下这个项目,看看能不能帮你节省不少开发时间。

zip
swift-tableview抽屉点击cell弹出n个子cell依次类推支持cell行高自适应.zip 预估大小:57个文件
folder
PYScalableTableView-master 文件夹
folder
PYScalableTableView.xcworkspace 文件夹
file
contents.xcworkspacedata 237B
folder
PYScalableTableView 文件夹
folder
Assets.xcassets 文件夹
folder
AppIcon.appiconset 文件夹
file
Contents.json 2KB
folder
3.imageset 文件夹
file
Contents.json 299B
file
3.jpeg 5KB
file
Contents.json 62B
folder
2.imageset 文件夹
file
Contents.json 299B
file
2.jpeg 3KB
folder
LaunchImage.launchimage 文件夹
file
Contents.json 1KB
folder
1.imageset 文件夹
file
1.jpeg 72KB
file
Contents.json 299B
file
main.m 350B
file
PushViewController.m 3KB
file
LaunchScreen.storyboard 2KB
file
AppDelegate.h 293B
file
AppDelegate.m 2KB
folder
Base.lproj 文件夹
file
Main.storyboard 2KB
file
PushViewController.h 376B
file
ViewController.h 231B
folder
Tool 文件夹
folder
PYScalableTableView 文件夹
file
ScalableTableView.m 12KB
file
ScalableTableView.h 1KB
file
UITableViewCell+ScalableTableViewCell_Extension.h 1009B
file
UITableViewCell+ScalableTableViewCell_Extension.m 2KB
folder
PYTestCell 文件夹
file
PYTestCell1.m 4KB
file
PYTestCell1.h 222B
file
PYTestCell2.m 4KB
file
PYTestCell3.m 4KB
file
PYTestCell2.h 222B
file
PYTestCell3.h 222B
folder
PYTestModel 文件夹
file
PYTestBaseModel2.h 332B
file
PYTestModel3.m 538B
file
PYTestModel3.h 274B
file
PYTestBaseModel2.m 916B
file
PYTestBaseModel.h 282B
file
PYTestBaseModel1.h 332B
file
PYTestBaseModel1.m 939B
file
PYTestBaseModel.m 615B
file
Info.plist 1KB
file
ViewController.m 2KB
folder
PYScalableTableView.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
file
contents.xcworkspacedata 164B
file
project.pbxproj 23KB
file
Podfile 295B
folder
(1层)model.mindnode 文件夹
file
contents.xml 9KB
folder
QuickLook 文件夹
file
Preview.jpg 96KB
file
viewState.plist 153B
folder
style.mindnodestyle 文件夹
file
metadata.plist 152B
file
contents.xml 2KB
folder
Pods 文件夹
folder
Target Support Files 文件夹
folder
Pods-PYScalableTableView 文件夹
file
Pods-PYScalableTableView-frameworks.sh 3KB
file
Pods-PYScalableTableView.release.xcconfig 585B
file
Pods-PYScalableTableView-acknowledgements.markdown 1KB
file
Pods-PYScalableTableView-dummy.m 152B
file
Pods-PYScalableTableView-resources.sh 5KB
file
Pods-PYScalableTableView-acknowledgements.plist 2KB
file
Pods-PYScalableTableView.debug.xcconfig 585B
folder
Pods.xcodeproj 文件夹
file
project.pbxproj 34KB
file
.gitignore 1KB
file
抽屉TableView.gif 4.79MB
file
README.md 10KB
...
zip 文件大小:4.89MB