Обновление прокрутки статического tableView

Я пытаюсь получить вид прокрутки uitableview, который является статическим, чтобы обновляться, у меня есть контейнерное представление, которое изменит размеры, и это работает, но я не могу получить прокручиваемую область для обновления.

Я попробовал 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 ответ

Если я понимаю природу вашей проблемы, вам необходимо обновить contentSize собственность вашего UIScrollView когда вы меняете контент.

Другие вопросы по тегам