gpt4 book ai didi

swift - 在 Tableview 中设置静态位置 View (Swift)

转载 作者:行者123 更新时间:2023-11-30 13:27:07 25 4
gpt4 key购买 nike

目前我正在将所有 Storyboard View Controller 传递给代码,目前我遇到了视觉问题。由于某种原因,这不会在我的代码 addSubView() 上复制

这就是它在我的 Storyboard上的样子

enter image description here

这是将 View 附加到 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)

问题是,使用这段代码, View 会在我向上或向下移动时 ScrollView ,而使用 Storyboard VC,它只会滚动 Tableview,而我的 View 只是在我放置它的位置上保持静态,这就是方式我喜欢这样。 “静态”

enter image description here

这也说明了我想要实现的目标。 enter image description here

最佳答案

我为你整理了这些。这是一个如何做到这一点的示例。然而 UITableview 并不打算以这种方式使用。您可以看到单元格 0 被您的自定义 View 覆盖。从数据源填充表格 View 时,您必须考虑到这一点。

    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!
}
}

enter image description here

您应该做的不是将 View 作为 TableView 的 subview 。

  1. 创建一个 View 。 (为了方便起见,我将此称为内容 View )
  2. 将 View 添加到内容 View 中。
  3. 将表格 View 添加到内容 View 。

只需将 View / TableView 放置在内容 View 中彼此相邻的位置即可。这将具有滚动 TableView 和彼此相邻的静态 View 的预期效果。如果所需的效果是桌面 View 上的 float View ,请反转步骤 2 和 3。

哦顺便说一句。如果您在代码中完成所有操作,则更改为这种布局非常容易。只需将您的 tableview Controller 更改为 View Controller 并采用 UITablview 协议(protocol)即可。

class testTableVIewController: UITableViewController {
class testTableVIewController: UIViewController,UITableViewDataSource,UITableViewDelegate {

然后为 tableview 类添加一个属性。还将其添加到 self.view 的正确位置。还记得将您的绿色 View 添加到 self.view

如果你这样做,你根本不需要更改太多代码。

关于swift - 在 Tableview 中设置静态位置 View (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com