【发布时间】:2015-10-19 18:06:32
【问题描述】:
目标
我想创建一个以 UITableView 作为子视图的自定义视图。
自定义视图以编程方式创建表视图。但是,对于外部世界(即 ViewController),自定义视图本身似乎是一个表格视图。
我尝试过的
import UIKit
class CustomTableView: UIView {
// Do I make outlets?
//@IBOutlet var dataSource: UITableViewDataSource?
//@IBOutlet var delegate: UITableViewDelegate?
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect){
super.init(frame: frame)
}
override func awakeFromNib() {
super.awakeFromNib()
}
override func layoutSubviews() {
super.layoutSubviews()
var tableView: UITableView!
tableView = UITableView(frame: self.bounds)
// I'm not sure how to set the delegate and dataSource
// tableView.dataSource = ???
// tableView.delegate = ???
self.addSubview(tableView)
}
}
以编程方式创建 UITableView 并将其作为子视图添加到自定义视图父级后,我无法弄清楚如何让自定义视图像表格视图一样工作。也就是说,我不知道如何让自定义视图为delegate 和dataSource 做View Controller 和table view 之间的通信。
我读到的
这些文章看起来不错,但我有点失落。
如何使自定义视图在委托和数据源方面表现得像它自己的表子视图?
【问题讨论】:
-
通常情况下,UIView“看起来”是视图控制器的表视图的唯一方式是它实际上是 UITableView 的子类。这是你的意思吗?
-
@algal,在这种情况下,我并不是要继承 UITableView。我正在尝试为垂直蒙古语制作水平 TableView。当我为垂直蒙古文 TextView 执行此操作时,我可以让自动布局工作的唯一方法是将其包装在两个容器视图中。请参阅this answer 及其问题。
标签: ios swift uitableview custom-component