我有一个相对简单的问题。我创建了一个函数 - 涵盖了从 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()中调用了另一个类中的函数,但是正如我所说,没有任何显示。
最佳答案
首先像这样创建一个单例类
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 添加到 View Controller 的 View 中。
如果它不起作用,请告诉我。
关于ios - 在另一个类中调用函数(包含变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278228/