带有手风琴效果的 UITableViewController(展开 / 折叠单元格)
在表格视图控制器中创建手风琴效果的简单轻量解决方案。按需显示详细内容。
AccordionTableViewCell
并重写 setExpanded:animated:
。import AEAccordion
final class ReadmeTableViewCell: AccordionTableViewCell {
static let reuseIdentifier = "ReadmeTableViewCell"
@IBOutlet weak var headerView: HeaderView!
@IBOutlet weak var detailView: DetailView!
// MARK: Override
override func setExpanded(_ expanded: Bool, animated: Bool) {
super.setExpanded(expanded, animated: animated)
if animated {
UIView.transition(with: detailView, duration: 0.3, animations: {
self.detailView.isHidden = !expanded
}, completion: nil)
} else {
detailView.isHidden = !expanded
}
}
}
AccordionTableViewController
并根据 expandedIndexPaths
配置单元格高度。import AEAccordion
final class ReadmeTableViewController: AccordionTableViewController {
override func viewDidLoad() {
super.viewDidLoad()
expandFirstCell()
}
func expandFirstCell() {
let firstCellIndexPath = IndexPath(row: 0, section: 0)
expandedIndexPaths.append(firstCellIndexPath)
}
// MARK: UITableViewDelegate
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return expandedIndexPaths.contains(indexPath) ? 200.0 : 50.0
}
}
.Package(url: "https://github.com/tadija/AEAccordion.git", majorVersion: 2)
github "tadija/AEAccordion"
pod 'AEAccordion'
本代码在 MIT 许可证下发布。有关详情,请参阅 LICENSE。