在一个UIViewController中添加两个表视图,可以通过以下步骤实现:
以下是一个示例代码,演示如何在一个UIViewController中添加两个表视图:
import UIKit
class MyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var tableView1: UITableView!
var tableView2: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// 创建第一个表视图
tableView1 = UITableView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height/2))
tableView1.dataSource = self
tableView1.delegate = self
view.addSubview(tableView1)
// 创建第二个表视图
tableView2 = UITableView(frame: CGRect(x: 0, y: view.frame.height/2, width: view.frame.width, height: view.frame.height/2))
tableView2.dataSource = self
tableView2.delegate = self
view.addSubview(tableView2)
}
// MARK: - UITableViewDataSource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView == tableView1 {
// 返回第一个表视图的行数
return 5
} else if tableView == tableView2 {
// 返回第二个表视图的行数
return 3
}
return 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
if tableView == tableView1 {
// 设置第一个表视图的单元格内容
cell.textLabel?.text = "TableView 1 - Row \(indexPath.row)"
} else if tableView == tableView2 {
// 设置第二个表视图的单元格内容
cell.textLabel?.text = "TableView 2 - Row \(indexPath.row)"
}
return cell
}
// MARK: - UITableViewDelegate
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == tableView1 {
// 处理第一个表视图的行选择事件
print("Selected row in TableView 1: \(indexPath.row)")
} else if tableView == tableView2 {
// 处理第二个表视图的行选择事件
print("Selected row in TableView 2: \(indexPath.row)")
}
}
}
这个示例代码创建了一个UIViewController,并在其view中添加了两个表视图tableView1和tableView2。通过实现UITableViewDataSource和UITableViewDelegate协议的方法,我们可以为每个表视图提供数据和处理用户交互事件。在数据源方法中,根据tableView参数的不同,我们返回不同的行数和单元格内容。在代理方法中,根据tableView参数的不同,我们处理不同表视图的行选择事件。
请注意,这只是一个示例代码,你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云