将 UIView 粘贴到屏幕顶部

Posted

技术标签:

【中文标题】将 UIView 粘贴到屏幕顶部【英文标题】:Stick UIView to top of screen 【发布时间】:2015-09-30 13:03:39 【问题描述】:

我尝试。

我使用以下代码:

import UIKit

class ViewController: UIViewController, UIScrollViewDelegate 

var navigationBarOriginalOffset : CGFloat?

@IBOutlet weak var navigationBar: UIView!
@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() 
    super.viewDidLoad()
    scrollView.delegate = self
    // Do any additional setup after loading the view, typically from a nib.


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.


override func viewWillAppear(animated: Bool) 
    super.viewWillAppear(animated)
    navigationBarOriginalOffset = navigationBar.frame.origin.y


func scrollViewDidScroll(scrollView: UIScrollView) 
    navigationBar.frame.origin.y = max(navigationBarOriginalOffset!, scrollView.contentOffset.y)
    print("did scroll")


但视图不粘,它与滚动视图一起滚动。

我怎样才能让它坚持下去?

【问题讨论】:

我认为在情节提要中您已将 UView 作为子视图添加到 Scrollview。把它放在Scrollview之外 试过这个 - 没有效果:( 【参考方案1】:

您可以将要粘贴到主视图或顶部布局指南的视图的约束添加到。这样就可以了

【讨论】:

从来没有想过这个简单的解决方案,它可以工作 XD 如果这不起作用,请确保设置所有其他视图的高度限制。

以上是关于将 UIView 粘贴到屏幕顶部的主要内容,如果未能解决你的问题,请参考以下文章

第一次设置 UIView 的新位置,它跳到屏幕顶部

以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部

UIView 显示在屏幕顶部移位

在目标 c 中的应用程序顶部窗口上添加 UIView 加载屏幕

UIView 上的顶部空间约束,而不是 UIImag

将 UIView(来自情节提要)修复到 UITableView 的顶部