2016-04-02 9 views
1

更新する静的な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) 
} 

} 

答えて

0

私はあなたの問題の本質を理解していれば、あなたは内容を変更したとき、あなたのUIScrollViewcontentSizeプロパティを更新する必要があります。