UiView在TableView之上

时间:2017-03-06 16:51:15

标签: ios swift xcode uitableview uiview

我试图将UIView(横幅)放在列表​​顶部(tableView),因此当用户向下滚动列表时,UIview不会消失。 我尝试了这段代码,但没有用。

override func viewDidLayoutSubviews() {
    self.view.addSubview(banner)
    banner.frame.size.width = self.view.frame.size.width
}
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
    var rect = self.banner.frame
    rect.origin.y = max(0,scrollView.contentOffset.y + scrollView.contentInset.top)
    self.banner.frame = rect
}

有任何建议如何解决?谢谢

1 个答案:

答案 0 :(得分:2)

使用scrollView,更方便的方法是使用标准UIViewController并将UIView附加到顶部,而不是尝试将视图保留在AutoLayoutconstraintsUITableView的底部附加UIView的底部和UIViewController的底部。

使用此布局时,只有较小的tableView会滚动,UIView将固定不动,超出滚动范围UITableViewCells

如果您目前正在使用UITableViewController,则需要从override方法中移除tableView修饰符,使UIViewController实施UITableViewDataSourceUITableViewDelegate,然后将delegates附加到代码或故事板中。

您的新UIViewController顶部会显示如下:

class MyController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    ...
}