视图固定在底部 Swift

View fixed at the bottom Swift

如果之前有人问过这个问题,我很抱歉,我没有找到相同的问题。 我有一个带有图像的视图,它必须始终固定在我的 iOS Swift 应用程序的底部。 即使我转到另一个屏幕,它仍然必须在底部,并且它必须是相同的视图,而不是不同屏幕的不同视图。 谢谢

您可以使用图像创建自定义视图,以将每个屏幕加载为固定视图。

//CusomeView

import UIKit

class CustomeView: UIView {

var contentView: UIView!
override init(frame: CGRect) {
    super.init(frame: frame)

}
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

}


}

现在您可以将这个自定义视图添加到每个 viewController 您想要在底部区域显示的地方检查下面的代码以加载自定义视图。

您还可以创建用于加载自定义视图的通用方法。

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var cv: CustomeView!
override func viewDidLoad() {
    super.viewDidLoad()
    if let customView = Bundle.main.loadNibNamed("CustomeView", owner: self, options: nil)?.first as? CustomeView {
        self.view.addSubview(customView)
    }
}

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

}

希望对您有所帮助

将您应用的根视图控制器设为通用 UIViewController。

将图像视图添加到根视图控制器的底部

将容器视图拖到该视图控制器上。使容器视图向下延伸到图像视图的正上方。

现在在故事板中创建一个新的视图控制器场景。如果你想要一个导航栈,它可以是一个导航视图控制器,或者一个标签栏控制器,或者任何你想要的类型。

按住 Control 从根视图控制器上的容器视图拖动到新的视图控制器上。 Select "embed" 在出现的对话框中。您现在已经创建了一个嵌入转场,并且您的根视图控制器包含一个子视图控制器。

现在,从您的子视图控制器进行所有导航。它将始终占据大部分屏幕,但不是全部,并且根视图控制器仍然可见,图像视图位于其底部。

您可以在屏幕底部添加自定义 UIWindow:

实例化一个带有框架(原点和大小)的 UIWindow,并将其 rootViewController 设置为包含您的 UIImageView 的 UIViewController。要显示 window,请将 isHidden 设置为 false。如果您不希望主要 window 与自定义 window 重叠,请将主要 window 的高度降低自定义 window 的高度。

您可以在 AppDelegate application(_:didFinishLaunchingWithOptions:) 中完成所有这些操作。

这是我在广告横幅中使用的一个简单示例:

window?.frame.size.height -= adBannerHeight
adWindow = UIWindow(frame: CGRect(x: 0, y: UIScreen.main.bounds.height - adBannerHeight, width: UIScreen.main.bounds.width, height: adBannerHeight))
adWindow?.rootViewController = AdViewController()
adWindow?.isHidden = false