更新静态tableView的滚动

时间:2016-04-02 02:34:45

标签: ios swift uitableview uiscrollview

我正在尝试获取更新的静态视图的滚动视图,我有一个容器视图,它将改变大小,这是有效的,但我不能让可滚动区域更新。

我尝试过setNeedsDisplay和setNeedsLayout而没有运气。

有什么想法吗?

class TimeAwayRequestTableViewController: UITableViewController {

var originalHeight : CGFloat!

@IBOutlet var selectedDate : UIView!

@IBOutlet var calendarView: CalendarView!

override func viewDidLoad() {
    super.viewDidLoad()

    originalHeight = self.tableView.contentSize.height

    calendarView.delegate = self

    self.selectedDate.frame.size.height = CGFloat(SelectedDatesTimeAway.selectedDates.count * 44)
}

override func preferredContentSizeDidChangeForChildContentContainer(container: UIContentContainer) {
    self.selectedDate.frame.size.height = CGFloat(SelectedDatesTimeAway.selectedDates.count * 44)
    self.tableView.contentSize.height = self.originalHeight + self.selectedDate.frame.size.height
    self.tableView.setNeedsDisplay()
    self.tableView.setNeedsLayout()
}

}

extension TimeAwayRequestTableViewController : CalendarViewDelegate {

func calendarDidSelectDate(date: Moment) {
    let theDate = date.date
    SelectedDatesTimeAway.selectedDates.append(theDate)
    print(SelectedDatesTimeAway.selectedDates.count)
    let tbc = self.childViewControllers[0] as! UITableViewController
    tbc.preferredContentSize.height = CGFloat ( SelectedDatesTimeAway.selectedDates.count * 44 )
    print(tbc.preferredContentSize.height)
    tbc.tableView.reloadData()
}

func calendarDidPageToDate(date: Moment) {
    print(date)
}

}

1 个答案:

答案 0 :(得分:0)

如果我了解您问题的性质,则需要在更改内容时更新contentSize的{​​{1}}属性。