在我的storyboard
我正在使用AutoLayout
,我的UITableView
已嵌入UIScrollView
。运行期间UITableView
的单元格数量发生了变化,我希望动态更改UITableView
框架的高度,并禁用UITableView
中的滚动。
我得到的代码显示UITableView
,但我无法调整高度。
class ViewController: UIViewController , UITableViewDataSource ,UITableViewDelegate {
@IBOutlet weak var myTableView: UITableView!
var array: [CellData] = [CellData]()
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell : CellKistNames = tableView.dequeueReusableCellWithIdentifier("Cell") as! CellKistNames
cell.cellSiingle.text = "cellData"
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.array.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
override func viewDidAppear(animated: Bool) {
myTableView.reloadData()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.myTableView.estimatedRowHeight = 44.0
self.myTableView.rowHeight = UITableViewAutomaticDimension
self.myTableView.dataSource = self
self.myTableView.delegate = self
array = [
CellData(name: "one"),CellData(name: "two"),CellData(name: "three"),CellData(name: "four"),CellData(name: "five"),CellData(name: "six"),CellData(name: "sevens")
]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:1)
每当用于渲染表视图的集合发生更改时,请使用新高度更新UITableView 高度约束 [collection Count] * tableViewHeight。
在XIB中,有两个用于水平和垂直滚动表视图的属性,只需取消选中它们即可在UITableView中禁用滚动。