我在构建项目时收到以下错误消息:
MyUIController:无法将类型“(LoadingView).Type”(又名“LoadingView.Type”)的值转换为预期的参数类型“UIView”
如果我的 LoadingView 类是 UIView 的子类,我不知道我是怎么得到这个错误的。
我的用户界面 Controller :
func loadingToLoading() {
// getting error message at this line
view.addSubview(LoadingView)
loadingView.frame = CGRect(origin: .zero, size: view.frame.size)
}
加载 View :
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
}
}
最佳答案
@nyohu 是对的。您在这里所做的是加载类定义而不是它的一个实例。您还可以使用这样的框架定义新 View
func loadingToLoading() {
var loadingView = LoadingView(frame: CGRect(origin: .zero, size: view.frame.size))
view.addSubview(loadingView)
}
关于ios - swift 3 : Compiler does not recognize type of subclassed UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41687391/