使用未解析的标识符“ GradientView”

问题描述

我正在尝试免费使用UIKit创建一个单一视图的应用程序。

提供的代码是

import UIKit

final class SignInViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.view.backgroundColor = .white
        
        let gradientView = GradientView()
        gradientView.fromColor = UIColor(red: 0.5,green: 0.85,blue: 1,alpha: 0.85)
        gradientView.toColor = .white
        gradientView.translatesAutoresizingMaskIntoConstraints = false
        
        let logoImageView = UIImageView(image: UIImage(named: "logo"))
        logoImageView.widthAnchor.constraint(equalTo: logoImageView.heightAnchor,multiplier: logoImageView.frame.width / logoImageView.frame.height).isActive = true
        
        let gitHubButton = UIButton(type: .system)
        gitHubButton.contentEdgeInsets = UIEdgeInsets(top: 12,left: 16,bottom: 12,right: 16)
        gitHubButton.titleLabel?.font = .systemFont(ofSize: 16,weight: .medium)
        gitHubButton.clipsToBounds = true
        gitHubButton.layer.cornerRadius = 6
        gitHubButton.backgroundColor = .black
        gitHubButton.tintColor = .white
        gitHubButton.imageEdgeInsets = UIEdgeInsets(top: 0,left: 0,bottom: 0,right: 16)
        gitHubButton.setImage(UIImage(named: "github"),for: .normal)
        gitHubButton.setTitle("Sign in with GitHub",for: .normal)
        
        let orLabel = UILabel()
        orLabel.font = .systemFont(ofSize: 14,weight: .medium)
        orLabel.textAlignment = .center
        orLabel.textColor = UIColor(white: 0.625,alpha: 1)
        orLabel.text = "or"
        
        let emailField = UITextField()
        emailField.clipsToBounds = true
        emailField.layer.cornerRadius = 6
        emailField.layer.borderColor = UIColor(white: 0.75,alpha: 1).cgColor
        emailField.layer.borderWidth = 1
        emailField.borderStyle = .roundedRect
        emailField.heightAnchor.constraint(equalToConstant: 44).isActive = true
        emailField.keyboardType = .emailAddress
        emailField.placeholder = "blob@pointfree.co"
        
        let passwordField = UITextField()
        passwordField.clipsToBounds = true
        passwordField.layer.cornerRadius = 6
        passwordField.layer.borderColor = UIColor(white: 0.75,alpha: 1).cgColor
        passwordField.layer.borderWidth = 1
        passwordField.borderStyle = .roundedRect
        passwordField.heightAnchor.constraint(equalToConstant: 44).isActive = true
        passwordField.isSecureTextEntry = true
        passwordField.placeholder = "••••••••••••••••"
        
        let signInButton = UIButton(type: .system)
        signInButton.contentEdgeInsets = UIEdgeInsets(top: 12,right: 16)
        signInButton.titleLabel?.font = .systemFont(ofSize: 16,weight: .medium)
        signInButton.clipsToBounds = true
        signInButton.layer.cornerRadius = 6
        signInButton.layer.borderColor = UIColor.black.cgColor
        signInButton.layer.borderWidth = 2
        signInButton.setTitleColor(.black,for: .normal)
        signInButton.setTitle("Sign in",for: .normal)
        
        let forgotPasswordButton = UIButton(type: .system)
        forgotPasswordButton.contentEdgeInsets = UIEdgeInsets(top: 12,right: 16)
        forgotPasswordButton.titleLabel?.font = .systemFont(ofSize: 16,weight: .medium)
        forgotPasswordButton.setTitleColor(.black,for: .normal)
        forgotPasswordButton.setTitle("I forgot my password",for: .normal)
        
        let legalLabel = UILabel()
        legalLabel.font = .systemFont(ofSize: 11,weight: .light)
        legalLabel.numberOfLines = 0
        legalLabel.textAlignment = .center
        legalLabel.textColor = UIColor(white: 0.5,alpha: 1)
        legalLabel.text = "By signing into Point-Free you agree to our latest terms of use and privacy policy."
        
        let rootStackView = UIStackView(arrangedSubviews: [
            logoImageView,gitHubButton,orLabel,emailField,passwordField,signInButton,forgotPasswordButton,legalLabel,])
        
        rootStackView.axis = .vertical
        rootStackView.isLayoutMarginsRelativeArrangement = true
        rootStackView.layoutMargins = UIEdgeInsets(top: 32,bottom: 32,right: 16)
        rootStackView.spacing = 16
        rootStackView.translatesAutoresizingMaskIntoConstraints = false
        
        self.view.addSubview(gradientView)
        self.view.addSubview(rootStackView)
        
        NSLayoutConstraint.activate([
            gradientView.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor),gradientView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),gradientView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),gradientView.bottomAnchor.constraint(equalTo: self.view.centerYAnchor),rootStackView.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor),rootStackView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),rootStackView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),])
    }
}

当我运行此代码部分时 我收到以下错误

error: UIKit Styling.playground:10:28: error: use of unresolved identifier 'GradientView'
        let gradientView = GradientView()

我认为GradientView()在最新版本中已更改

我找不到合适的替代品。

解决方法

我希望您错过了进口声明。像import GradientView

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...