调整UITableView高度(嵌入在UIScrollView中)

时间:2015-10-08 09:45:37

标签: ios swift uitableview uiscrollview autolayout

在我的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.
}
}

1 个答案:

答案 0 :(得分:1)

每当用于渲染表视图的集合发生更改时,请使用新高度更新UITableView 高度约束 [collection Count] * tableViewHeight。

在XIB中,有两个用于水平和垂直滚动表视图的属性,只需取消选中它们即可在UITableView中禁用滚动。