视图固定在底部 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
如果之前有人问过这个问题,我很抱歉,我没有找到相同的问题。 我有一个带有图像的视图,它必须始终固定在我的 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