目前我将所有的storyboard viewcontrollers传递给代码,目前我遇到了一个视觉问题。由于某种原因,我的代码addSubView()
没有复制这就是我在Storyboard上的样子
这是将视图附加到tableview
中的代码let profileView = UIView(frame: CGRectMake(0,0,500,45))
profileView.backgroundColor = UIColor(red:0.35, green:0.77, blue:0.66, alpha:1)
self.tableview.addSubview(profileView)
问题在于,使用此代码时,视图会在我向上或向下滚动视图时,使用Storyboard VC,它只会滚动Tableview,我的视图只会在我放置它的位置保持静态,这就是方式我喜欢它。 "静态"
答案 0 :(得分:0)
我把它扔给你了。这是如何做到这一点的一个例子。但是,UITableview并不打算以这种方式使用。您可以看到自定义视图覆盖了单元格0。从数据源填充tableview时,您必须考虑到这一点。
import UIKit
class testTableVIewController: UITableViewController {
@IBOutlet var theTableView: UITableView!
var profileView:UIView
required init?(coder aDecoder: NSCoder) {
profileView = UIView(frame: CGRectMake(0,0,500,45))
profileView.backgroundColor = UIColor(red:0.35, green:0.77, blue:0.66, alpha:1)
super.init(coder: aDecoder)
}
override func viewDidLoad() {
super.viewDidLoad()
self.theTableView.addSubview(profileView)
}
override func scrollViewDidScroll(scrollView: UIScrollView) {
profileView.frame = CGRectOffset( profileView.frame, scrollView.contentOffset.x, 0 );
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = theTableView.dequeueReusableCellWithIdentifier("cell")
cell?.textLabel?.text = String(indexPath.row)
return cell!
}
}
而不是将视图作为表视图的子视图放置,您应该做什么。
将视图/表视图放在内容视图中彼此相邻的位置。 这将具有滚动表视图和彼此相邻的静态视图的期望效果。如果所需效果是在tableview上的浮动视图,则反向步骤2和3。
哦顺便问一下。如果您在代码中完成所有操作,那么更改为这种布局非常容易。只需将tableview控制器更改为视图控制器并采用UITablview Protocols。class testTableVIewController: UITableViewController {
class testTableVIewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
然后为tableview类添加一个属性。还要将其添加到self.view中的正确位置。还记得将你的绿色视图添加到self.view
如果您这样做,则根本不需要更改太多代码。