为了创建渐变层,我在现有控制器上叠加了一个UIView.然而,当我加载视图时,新的UIView(自然)是最重要的.

相关代码:

class ViewController: UIViewController {

    @IBOutlet weak var myGradientView: GradientView!

    override func viewDidLoad() {
        super.viewDidLoad()            
    }

    override func viewDidLayoutSubviews() {
        self.myGradientView.gradientWithColors(UIColor.whiteColor(), UIColor.blueColor())
    }
}

我做了一些搜索,找到了an answer in Objective-C个解释:

[parentView将子视图带到前面:视图];

我不知道objective-c,而且我对Swift还相当陌生,如果有人能对此有所了解,我将不胜感激.

我的问题是:

如何在Swift中更改UIView的z索引或堆栈顺序?

推荐答案

我建议查看UIView documentation,其中列出了几种处理子视图顺序的方法:

bringSubviewToFront(_:)
sendSubviewToBack(_:)
removeFromSuperview()
insertSubview(_:atIndex:)
insertSubview(_:aboveSubview:)
insertSubview(_:belowSubview:)
exchangeSubviewAtIndex(_:withSubviewAtIndex:)

在你的情况下,你可以try :

self.view.sendSubviewToBack(myGradientView)
// self is your view controller in this case.

或者,因为您在IB中创建了myGradientView,所以可以更改视图层次 struct ,以更改显示在顶部的视图.下面是一张图片来说明:

在此处输入图像描述

希望有帮助.

Swift相关问答推荐

对多个项目的数组进行排序

使用SWIFT宏从另一个枚举添加 case

向文本元素添加背景色失败

带DispatchSourceTimer的定时器

Result类型的初始值设定项失败?

如何使用模型在 SwiftUI 的列表中进行搜索

为什么即使 `C` 是一个不是 `Sendable` 的类,Task` 也能工作?

如何将视图添加到多行文本视图的末尾?

RxSwift 事件触发了两次

为什么 id 不能通过 struct 从 Objective-C 移植到 Swift?

如何在 SWIFTUI 中旋转修剪?

如何为 Swift UI 视图定义 struct ?

响应 UITextField (UIViewRepresentable) 中的特定按键

如何获取 NSRunningApplication 的参数?

iOS 判断应用程序是否可以访问麦克风

Xcode 6 中的嵌入式内容包含 Swift 代码构建设置有什么作用?

在 iOS 中使用 Swift 保存 PDF 文件并显示它们

如何在 Swift 中将对象归零

将活动指示器 colored颜色 更改为黑色

如何发送静默推送通知有效负载