繁体   English   中英

带有UITableviewController Swift顶部标签的UIView

[英]UIView with labels at top of UITableviewcontroller Swift

我试图在滚动时在UITableViewController的顶部保留一个带有标签,segmentedControl和按钮的UIView。 我无法将ViewController与UITableView一起使用,因为我的TableViewCells是静态的,其中包含UITextFields。 我知道这可以通过ViewController和ContainerViewController来完成,但是,这使需要在视图之间传递的数据量变得复杂。 我正在寻找swiftViewDidScroll解决方案。

这是我到目前为止所拥有的。 我已经在情节提要板上创建了View(也许这是问题的一部分。)labelView通过插座连接。

    override func scrollViewDidScroll(scrollView: UIScrollView) {
    var rect = self.labelView.frame
    rect.origin.y = min(0,scrollView.contentOffset.y + scrollView.contentInset.top);
    self.labelView.frame = rect;
}

如果您只有一个部分,则可以尝试将视图添加到部分标题中。 是的,你必须改变很多事情,但是它将100%起作用

我想到了。

首先,我将虚拟的空白视图放置在希望放置的位置。 我这样做了,否则它将自己置于tableview的顶部。 我相信您也可以在代码中设置偏移量,但这似乎更容易。 然后,我在tableViewController外部创建了一个单独的视图,并设置了标签和按钮。 通过插座连接此视图。 这是添加视图并在滚动时保持其位置的代码。

@IBOutlet var labelView: UIView!

override func viewDidLayoutSubviews() {
    self.view.addSubview(labelView)
    labelView.frame.size.width = self.view.frame.size.width
}

override func scrollViewDidScroll(scrollView: UIScrollView) {
    var rect = self.labelView.frame
    rect.origin.y = max(0,scrollView.contentOffset.y + scrollView.contentInset.top)
    self.labelView.frame = rect
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM