我正在开发一个游戏,第一个视图控制器将包含30视图控制器的其余部分的全部功能,其中其余的控制器将是第一个视图控制器的子类。我的计划是为我的应用程序中的所有30个视图控制器或场景使用单一的故事板,它们都将使用相同的背景图像。为了让你知道我说的是什么,我在这个Drawing.Storyboard图像中只显示了两个场景,但是计划在这个同样的故事板中多出28个场景。Drawing.Storyboard
如果故事板中的所有30个场景都有相同的UIView背景图像,那么如何处理呢?我是否需要为场景中的每个视图添加相同的背景图像,或者只是将背景图像添加到第一个场景视图中,并为其余的视图使用容器视图?注意,我过去从未使用过容器视图。
发布于 2016-10-20 02:32:13
经过"h44f33z“的进一步研究和建议,以下内容将在您的故事板中不使用UIView图像的情况下工作。
ViewController A
class ViewControllerA: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Load background image for all views
let bgImageView = UIImageView(frame: UIScreen.main.bounds)
bgImageView.image = UIImage(named: "bg_image")
self.view.addSubview(bgImageView)
}
}视图控制器B
class ViewControllerB: ViewControllerA {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}在ViewController B中没有什么需要做的,因为它是ViewController A的子类。使用此设置,只要视图是第一个视图控制器的子类,您就可以尽可能多地使用视图。
发布于 2016-10-19 02:42:06
要做到这一点,只需创建UIViewController的父类/基类,然后将UIImageView添加到viewDidLoad()中的self.view中。
因此,对于所有的30 ViewControllers,应该扩展到基本的viewController。它看起来就像这样
class StartViewController: BaseViewController您的基类viewDidLoad将类似于
override func viewDidLoad() {
super.viewDidLoad()
let bgImageView = UIImageView(frame: UIScreen.mainScreen().bounds)
bgImageView.image = UIImage(named: "bg-image")
self.view.addSubview(bgImageView)
}您可以在基类中添加更多函数或处理,所有30个子viewControllers都可以轻松使用。
https://stackoverflow.com/questions/40120538
复制相似问题