我有一个相对简单的问题。我创建了一个函数 - 覆盖内容以从API检索数据。我需要在几个不同的类中调用一个函数(不想复制)。我正在调用该函数,但没有显示任何内容。如果这个函数是我要调用它的类的一部分,它可以正常工作。问题在哪里,请告诉我。 (我想在UIView ......)?谢谢。
我的功能:
func loadScreen() {
var loadView:UIView!
loadView = UIView(frame: self.view.frame)
loadView!.backgroundColor = UIColor.black
loadView!.alpha = 1.0
let actView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
actView.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
actView.center = CGPoint(x: self.view.bounds.size.width / 2 , y: self.view.bounds.size.height / 2 )
actView.startAnimating()
loadView?.addSubview(actView)
self.view.addSubview(loadView!)
}
我在viewDidLoad()中调用另一个类中的函数,但正如我所说,没有显示任何内容。
答案 0 :(得分:2)
首先创建一个像这样的单例类
import UIKit
import Foundation
class Singleton: NSObject
{
static let sharedInstance = Singleton()
override init()
{
super.init()
}
func placeBlockerView(target : UIViewController)
{
var loadView:UIView!
loadView = UIView(frame: target.view.frame)
loadView!.backgroundColor = UIColor.black
loadView!.alpha = 1.0
let actView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
actView.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
actView.center = CGPoint(x: target.view.bounds.size.width / 2 , y: target.view.bounds.size.height / 2 )
actView.startAnimating()
loadView?.addSubview(actView)
target.view.addSubview(loadView!)
}
}
之后,根据需要随时使用
像这样Singleton.sharedInstance.placeBlockerView(target: self)
以上行将添加您已创建的UIView到视图控制器的视图。
如果它不起作用,请告诉我。
答案 1 :(得分:0)
不是在上面添加它,而是始终建议return the UIView
从该方法和UIViewController
的子类中执行以下操作。
func viewDidLoad() {
let loadView = loadScreen()
self.view.addSubView()
}