如何更改 ViewController 视图后面的颜色/放置东西(swift)?

Posted

技术标签:

【中文标题】如何更改 ViewController 视图后面的颜色/放置东西(swift)?【英文标题】:How can I change the color/put things behind my ViewControlller's view (swift)? 【发布时间】:2017-08-08 13:07:47 【问题描述】:

一图:

我这样做是为了让您可以用手指拖动视图控制器视图(我已经这样做了),但我想知道:

    如何将黑色更改为另一种颜色 如何将图像放在视图后面(我想这样做,因此如果您拖动视图,您会看到一张图片)。

我该怎么做?我想我可能需要在这个视图后面直接放置另一个视图,然后使当前视图控制器成为子视图?

【问题讨论】:

您可以将背景图片设置为视图控制器的view,然后制作您想要移动的子视图。 你可以通过在后端添加imageview来实现。 【参考方案1】:

您可以将图像设置为ViewController 的背景,方法是在Storyboard 中将ViewController 的主视图的类从UIView 更改为UIImageView,并将图像设置为@987654326 @ 的image 属性或通过将UIImageView 添加到与view 大小相同的ViewController

【讨论】:

【参考方案2】:

所谓的“背景色”,我想你的意思是当你把VC拖走时显示的黑色,对吧?

那是你的 VC 正在运行的 UIWindow 的颜色。它是每个视图的超级视图。

要更改窗口颜色,只需转到您的AppDelegate.swift 并更改即可:

window?.backgroundColor = .red

要添加背景图片,您只需添加一个UIImageView 作为window 的子视图。

if let window = self.window
    let imageView = UIImageView(frame: window.frame)
    imageView.image = ...
    window.addSubview(imageView)

【讨论】:

【参考方案3】:

如果您不想处理子视图并且只使用视图控制器,您可以尝试在普通(固定位置)视图控制器上呈现可拖动的视图控制器。您可以这样做(从普通视图控制器调用此代码以将可拖动视图控制器呈现在自身之上):

let storyboard = UIStoryboard(name: "Main", bundle: nil)

// Set the draggable controller's identifier in Main.storyboard
let dragController = storyboard.instantiateViewController(withIdentifier: "DragController")

// Present the draggable view controller over the current one
dragController.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
dragController.modalTransitionStyle = UIModalTransitionStyle.coverVertical
self.present(dragController, animated: true, completion: nil)

使用此代码,然后设置普通视图控制器的背景图像。希望这会有所帮助:)

【讨论】:

以上是关于如何更改 ViewController 视图后面的颜色/放置东西(swift)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SWIFT 中更改 ViewController 后保留集合视图滚动位置

更改按钮单击时的 viewController

有条件地在选项卡栏项后面选择viewcontroller

关闭 Modal ViewController 将父视图隐藏在状态栏后面

创建后如何更改 ViewController 的类型?

如何从另一个视图控制器更改标签的文本并使用核心数据保存