如何以编程方式放置我的 activityIndicator?
How do I place my activityIndicator programmatically?
我想以编程方式将我的 activityIndicator 放置在我想要的位置,但我不知道如何。
我知道怎么把它放在屏幕中央:
activityIndicator.center = self.view.center
但我想要这样的东西:
activityIndicator.activityIndicator(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
但我似乎做不到。
基本上,您只需几行代码即可完成此操作:
func showActivityIndicatory() {
var activityView = UIActivityIndicatorView(style: .whiteLarge)
activityView.center = self.view.center
self.view.addSubview(activityView)
activityView.startAnimating()
}
如果您需要对 activityView 进行更多控制,请设置 container
视图的原点以将 activityindicator 放置在屏幕上的任何位置。
func showActivityIndicatory() {
let container: UIView = UIView()
container.frame = CGRect(x: 0, y: 0, width: 80, height: 80) // Set X and Y whatever you want
container.backgroundColor = .clear
let activityView = UIActivityIndicatorView(style: .whiteLarge)
activityView.center = self.view.center
container.addSubview(activityView)
self.view.addSubview(container)
activityView.startAnimating()
}
Swift 5:
let activityIndicator = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.gray)
// Place the activity indicator on the center of your current screen
myActivityIndicator.center = view.center
// In most cases this will be set to true, so the indicator hides when it stops spinning
myActivityIndicator.hidesWhenStopped = true
// Start the activity indicator and place it onto your view
myActivityIndicator.startAnimating()
view.addSubview(myActivityIndicator)
// Do something here, for example fetch the data from API
// Finally after the job above is done, stop the activity indicator
myActivityIndicator.stopAnimating()
您可以声明:
var activityView: UIActivityIndicatorView?
并且,在您的 class 中,创建下一个显示或隐藏指标的方法:
func showActivityIndicator() {
activityView = UIActivityIndicatorView(style: .large)
activityView?.center = self.view.center
self.view.addSubview(activityView!)
activityView?.startAnimating()
}
func hideActivityIndicator(){
if (activityView != nil){
activityView?.stopAnimating()
}
}
这段代码对我有用。祝你好运!
Swift 4, Swift 5
如果你喜欢我的 daily/favorite 编程模式
// MARK: - Component
lazy var indicatorView: UIActivityIndicatorView = {
let view = UIActivityIndicatorView(style: .medium)
view.color = .white
view.startAnimating()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
// MARK: - Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
setupViews()
setupLayouts()
}
func setupViews() {
addSubview(indicatorView)
}
func setupLayouts() {
NSLayoutConstraint.activate([
indicatorView.centerXAnchor.constraint(equalTo: centerXAnchor),
indicatorView.centerYAnchor.constraint(equalTo: centerYAnchor)
])
}
我想以编程方式将我的 activityIndicator 放置在我想要的位置,但我不知道如何。
我知道怎么把它放在屏幕中央:
activityIndicator.center = self.view.center
但我想要这样的东西:
activityIndicator.activityIndicator(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
但我似乎做不到。
基本上,您只需几行代码即可完成此操作:
func showActivityIndicatory() {
var activityView = UIActivityIndicatorView(style: .whiteLarge)
activityView.center = self.view.center
self.view.addSubview(activityView)
activityView.startAnimating()
}
如果您需要对 activityView 进行更多控制,请设置 container
视图的原点以将 activityindicator 放置在屏幕上的任何位置。
func showActivityIndicatory() {
let container: UIView = UIView()
container.frame = CGRect(x: 0, y: 0, width: 80, height: 80) // Set X and Y whatever you want
container.backgroundColor = .clear
let activityView = UIActivityIndicatorView(style: .whiteLarge)
activityView.center = self.view.center
container.addSubview(activityView)
self.view.addSubview(container)
activityView.startAnimating()
}
Swift 5:
let activityIndicator = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.gray)
// Place the activity indicator on the center of your current screen
myActivityIndicator.center = view.center
// In most cases this will be set to true, so the indicator hides when it stops spinning
myActivityIndicator.hidesWhenStopped = true
// Start the activity indicator and place it onto your view
myActivityIndicator.startAnimating()
view.addSubview(myActivityIndicator)
// Do something here, for example fetch the data from API
// Finally after the job above is done, stop the activity indicator
myActivityIndicator.stopAnimating()
您可以声明:
var activityView: UIActivityIndicatorView?
并且,在您的 class 中,创建下一个显示或隐藏指标的方法:
func showActivityIndicator() {
activityView = UIActivityIndicatorView(style: .large)
activityView?.center = self.view.center
self.view.addSubview(activityView!)
activityView?.startAnimating()
}
func hideActivityIndicator(){
if (activityView != nil){
activityView?.stopAnimating()
}
}
这段代码对我有用。祝你好运!
Swift 4, Swift 5
如果你喜欢我的 daily/favorite 编程模式
// MARK: - Component
lazy var indicatorView: UIActivityIndicatorView = {
let view = UIActivityIndicatorView(style: .medium)
view.color = .white
view.startAnimating()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
// MARK: - Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
setupViews()
setupLayouts()
}
func setupViews() {
addSubview(indicatorView)
}
func setupLayouts() {
NSLayoutConstraint.activate([
indicatorView.centerXAnchor.constraint(equalTo: centerXAnchor),
indicatorView.centerYAnchor.constraint(equalTo: centerYAnchor)
])
}