更新静态 tableView 的滚动

Posted

技术标签:

【中文标题】更新静态 tableView 的滚动【英文标题】:Updating Scrolling of a static tableView 【发布时间】:2016-04-02 02:34:45 【问题描述】:

我正在尝试获取静态的 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】:

如果我了解您的问题的性质,您需要在更改内容时更新您的UIScrollViewcontentSize 属性。

【讨论】:

以上是关于更新静态 tableView 的滚动的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图内的不可滚动的tableview

UITableView - reloadRows 方法创建奇怪的滚动错误

UITableViewCell 中的 UIPickerView - 如何选择值而不是滚动 TableView?

iOSTableView的footerView不随cell滚动而停留在tableView底部的问题

Swift:在滚动时更改表格视图高度

Tableview单元格内UItextView的奇怪行为