您要在UITableView中添加子视图,首先需要创建一个自定义的UITableViewCell,然后在tableView(_:heightForRowAt:)
方法中计算该子视图的高度。
CustomTableViewCell.swift
。在该类中,创建一个子视图,然后使用IBOutlet
和IBAction
将其与自定义的UITableViewCell类关联。import UIKit
class CustomTableViewCell: UITableViewCell {
// 添加子视图
@IBOutlet weak var subView: UIView!
// 连接按钮的点击事件
@IBAction func buttonTapped(_ sender: UIButton) {
// 处理按钮点击事件
}
}
tableView(_:heightForRowAt:)
方法中,为自定义的UITableViewCell计算高度,包括子视图的高度。func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let cell = CustomTableViewCell()
let height = cell.subView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height + cell.contentView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
return height
}
tableView(_:cellForRowAt:)
方法中,创建并返回自定义的UITableViewCell。func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell", for: indexPath) as! CustomTableViewCell
// 设置子视图和按钮的属性
cell.subView.frame = CGRect(x: 0, y: 0, width: cell.bounds.width, height: 20)
cell.button.setTitle("Button", for: .normal)
// 设置单元格的其他属性
cell.selectionStyle = .none
cell.backgroundColor = UIColor.clear
return cell
}
viewDidLoad
方法中,注册自定义的UITableViewCell类。override func viewDidLoad() {
super.viewDidLoad()
tableView.register(CustomTableViewCell.self, forCellReuseIdentifier: "CustomTableViewCell")
}
现在,您可以在UITableView
中显示子视图。当用户点击按钮时,buttonTapped(_:)
方法将触发自定义的UITableViewCell中的按钮点击事件。
领取专属 10元无门槛券
手把手带您无忧上云