2017-03-06 68 views
0

我试图把一个UIView(横幅)放在列表​​(tableView)的顶部,所以当用户向下滚动列表时,UIview不会消失。 我试过这段代码,但没有工作。在桌面上的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

请分享你的设计,你确切想你为什么要使用滚动视图功能与表视图做 – 2017-03-06 16:53:21

+0

?你只定义了横幅的宽度,那么高度呢? –

+0

你是从'UIViewController'还是'UITableViewController'继承你的视图控制器?你可以分享你想要的截图吗? – Adeel

回答

2

而不是试图保持scrollView中的观点,更简单的方法是使用一个标准的UIViewController附有使用AutoLayout顶部与constraintsUITableView连接到UIView和底部的UIView底部的UIViewController

采用这种布局,只有你的小tableView将滚动和你的UIView将固定到位,滚动UITableViewCells的范围之内。

如果您正在使用UITableViewController,你需要从你的tableView方法去除override改性剂,让你的UIViewController实施UITableViewDataSourceUITableViewDelegate,然后装上delegates无论是在代码或情节串连图板。

您的新UIViewController是这样的顶部:

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

是的,我想过,但我认为应该有一种方法,如何将uiview粘贴到顶部,因为它不是列表的主单元格(tableView) – lukas28277

+0

@ lukas28277的一部分。检查我刚刚做出的重复链接。 – 2017-03-06 17:19:55

+0

@ lukas28277该视图不是列表中主要单元格的一部分的事实是我推荐我的方法的确切原因。它完全分离了你从tableview和tableview逻辑中描述的这个辅助视图。 – Kyle