Swift 3:编译器无法识别子类UIView的类型

时间:2017-01-17 00:48:15

标签: ios swift uiview swift3

构建项目时收到以下错误消息:

MyUIController:无法转换类型'(LoadingView)的值.Type' (又名' LoadingView.Type')到期望的参数类型' UIView'

如果我的LoadingView类是UIView的子类,我不知道如何获取此错误。

MyUIController:

func loadingToLoading() {
        // getting error message at this line
        view.addSubview(LoadingView)
        loadingView.frame = CGRect(origin: .zero, size: view.frame.size)
    }

LoadingView:

import Foundation
import UIKit

final class LoadingView: UIView {

    private let spinner = UIActivityIndicatorView(activityIndicatorStyle: .gray)

    override init(frame: CGRect) {

        spinner.startAnimating()

        super.init(frame: frame)

        addSubview(spinner)
        backgroundColor = UIColor.white
    }

    @available(*, unavailable)
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        spinner.center = center
    }
}

1 个答案:

答案 0 :(得分:2)

@nyohu是对的。你在这里做的是加载类定义而不是它的实例。您也可以使用类似这样的框架定义新视图

func loadingToLoading() {
    var loadingView = LoadingView(frame: CGRect(origin: .zero, size: view.frame.size))        
    view.addSubview(loadingView)
}