UIView 不会出现在模拟器中

UIView won't appear in simulator

想请教一下UIView(背景色为橙色)不显示的原因

https://imgur.com/kAtelaE 此 link 有一张显示 UIView 预览的图片。 https://imgur.com/E2xOWb7这个link的图片显示UIView不会出现在模拟器中。

下面是 ViewController 代码。我已经让 gradientLayer 的 Z 轴得到一个负数。

extension UIColor {
    convenience init(hexString: String) {
        let hex = hexString.trimmingCharacters(in: CharacterSet.alphanumerics.inverted)
        var int = UInt32()
        Scanner(string: hex).scanHexInt32(&int)
        let a, r, g, b: UInt32
        switch hex.count {
        case 3: // RGB (12-bit)
            (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17)
        case 6: // RGB (24-bit)
            (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF)
        case 8: // ARGB (32-bit)
            (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF)
        default:
            (a, r, g, b) = (255, 0, 0, 0)
        }
        self.init(red: CGFloat(r) / 255, green: CGFloat(g) / 255, blue: CGFloat(b) / 255, alpha: CGFloat(a) / 255)
    }
}

class ViewController: UIViewController {

    @IBOutlet weak var playerView: UIView!
    @IBOutlet weak var controlView: UIView!
    @IBOutlet weak var controlPanel: UIView!
    @IBOutlet weak var progressView: UIView!

    // playerView에서 gradient background color
    var gradientLayer: CAGradientLayer!

    func createGradientLayer() {
        gradientLayer = CAGradientLayer()
        gradientLayer.frame = playerView.bounds
        gradientLayer.colors = [UIColor(hexString: "#385175").cgColor, UIColor(hexString: "#36a9ba").cgColor]
        gradientLayer.zPosition = -2
        playerView.layer.addSublayer(gradientLayer)
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        controlPanel.layer.cornerRadius = 7.0
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        createGradientLayer()
    }
}

如何让 UIView 出现? 感谢阅读。

如果没有完整的项目,很难判断发生了什么,但你可以自己调试它:

在第 2 步,您需要 select 您的其中一个视图未显示。 在第 3 步,您可以看到 selected 视图的尺寸,因此您知道高度或宽度是否设置为 0(这会导致视图不可见)。

如果高度和宽度大于 0,那么您可以在 xcode 内旋转应用的渲染并查看应用的不同层。如果橙色视图是 "under" 一些其他视图,您应该在那里看到它们。

Post你查出来的,这样更容易帮助到你:)