как программно добавить UIActivityIndicator в пользовательское представление?

#ios #swift #uiactivityindicatorview

#iOS #swift #uiactivityindicatorview

Вопрос:

Я использую эту библиотеку https://github.com/PiXeL16/RevealingSplashView чтобы добавить что-то вроде заставки.

Я использую RevealingSplashView при получении данных из Интернета,. но, к сожалению, если время запроса слишком велико, это приведет к зависанию приложения. итак, я хочу добавить что-то вроде UIActivityIndicatorView в центр нижней части экрана или где-нибудь еще в RevealingSplashView.

 var revealingSplashView = RevealingSplashView(iconImage: UIImage(named: "loadscreenLogo")!,iconInitialSize: CGSize(width: 110, height: 110), backgroundColor: AppColor.mainYellow.getUIColor())
revealingSplashView.addSubview(UIActivityIndicatorView())
 

но он ничего не показывает

Ответ №1:

Вот как я бы это сделал. Вам нужен экземпляр UIActivityIndicatorView, а не сам класс.

 //loading indicator
let indicator:UIActivityIndicatorView = UIActivityIndicatorView  (activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
 

Затем индикатор загрузки — он находится в центре экрана, но мы можем легко изменить его с помощью .center CGPoint . Вы можете увеличить индикатор с помощью .frame.

 fileprivate func loading(){
    indicator.color = UIColor.gray
    indicator.frame = CGRect(x: 0.0, y: 0.0, width: 15.0, height: 15.0)
    indicator.center =  CGPoint(x: revealingSplashView center.x, y: revealingSplashView.center.y - (navigationController?.navigationBar.frame.height)! )
    revealingSplashView.addSubview(indicator)
    indicator.bringSubview(toFront: self.view)
    indicator.startAnimating()
}
 

И когда вы закончите

 self.indicator.stopAnimating()
 

и удалите индикатор