当前位置: 首页 > 知识库问答 >
问题:

具有使用相同背景图像的多个场景的视图控制器(UIViewController)故事板

宋耀
2023-03-14

我正在开发一个游戏,其中第一个视图控制器将包含30个视图控制器的其余部分的全部功能,其中这些控制器的其余部分将是第一个视图控制器的子部分。我的计划是为我的应用程序中的所有30个视图控制器或场景使用单个故事板,它们都将使用相同的背景图像。为了让你知道我在说什么,我在这幅画中只展示了两个场景。故事板图像,但计划是有28更多的场景在这个相同的故事板。绘图。故事板

如果此故事板中的所有30个场景都具有相同的UIView背景图像,则如何处理该图像。我是否必须为场景中的每个视图添加相同的背景图像,或者只是将背景图像添加到第一个场景视图中,并使用容器视图进行其余操作?注意:我过去从未使用过容器视图。

共有2个答案

葛雪松
2023-03-14

一种方法,你可以创建一个父/基类的UIViewController并添加UIImageViewself.view中的viewdiLoad()

因此,对于所有30个viewController,应扩展到该基础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个子ViewController都可以轻松使用这些函数或处理事件

姜志行
2023-03-14

经过“h44f33z”的进一步研究和建议,以下内容将在故事板中不使用UIView图像的情况下起作用。

视图控制器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的子类。通过这种设置,您可以使用尽可能多的视图,只要视图是第一个视图控制器的子类。

 类似资料:
  • 我正在用java开发一个聊天机器人项目,在GUI中我使用JavaFX、IDE eclipse和scene builder 8.4.1。 我在向文本区域添加背景图像时遇到问题。这是我所做的一个屏幕截图,它什么也没有显示(甚至没有错误)。 以下是场景生成器生成的fxml代码:

  • 问题内容: 如何在JPANEL上放置图像背景? 问题答案: 这是一个解释。

  • 我已经通读了《iOS View Controller编程指南》和《iOS View编程指南》,如果代码或情节提要中没有大量复制,我无法找到执行以下操作的最佳方法。 我正在为我的孩子们编写一个简单的数学教程程序,其中有一个带有数字“NumberPad”(数字0-9)的视图,以及一些动画的场景。 到目前为止,我有一个视图控制器,它处理简单的加减乘除问题,工作良好。 我想为一个视图控制器使用相同的数字键

  • 问题内容: 假设我要在CSS中渲染箭头,箭头应具有头部,尾部和灵活的宽度,以便可以包含文本。我当然可以创建多个div来获得所需的内容,但是如何在CSS3中完成呢? 我可以使用多个背景图片: 的HTML: 这给了我一个带有箭头和尾巴的透明中间部分。似乎不可能在中间部分指定颜色。 仅使用一张背景图像,您可以执行以下操作: 我知道这在很多方面都是可行的,但是背景颜色属性是否真的从速记定义中丢失了? 问题

  • 我想让我的登录活动与背景关闭整个活动,包括手机本身的时钟像这样 这是我的密码 但我的输出是 我需要删除橙色条,使其与第一个图像相同。 我如何按照这种风格制作:

  • 问题内容: 我正在使用以下代码在Windows和Linux中设置任务栏图标。它在Windows中效果很好,在Linux中效果很好。在Linux(Ubuntu)中,我将面板设置为(某种程度上)透明,并且当我添加GIF(具有透明背景)时,图标的背景显示为灰色和丑陋的所有颜色(参见图像,绿色菱形“!”)。 …有关如何制作GIF图片的任何想法,我要“保留”其透明背景? 替代文字http://unarm.o