在表格视图中滚动时,UIActivityIndi​​cator没有向上移动

时间:2019-06-25 20:12:23

标签: ios swift uitableview uiactivityindicatorview

我有一个UITableviewcontroller和一个活动指示器添加到它。 每当我的表格滚动时,指示器也会向上移动并超出范围。相反,即使表格滚动,我也要显示指示器

我检查了这篇文章:UIActivityIndicator scrolls with tableView,该帖子说我需要使用UIViewcontroller而不是Tableviewcontroller。

由于我在应用程序中添加了许多tableviewcontrollers,因此无法将指标与tableview一起滚动。

我的UIActivityIndi​​cator是整个应用程序的帮助程序类,我可以控制显示和删除微调器

extension UIViewController {
    class func displaySpinner(onView : UIView) -> UIView {
        let spinnerView = UIView.init(frame: onView.frame)
        spinnerView.backgroundColor = UIColor.init(red: 0.5, green: 0.5, blue: 0.5, alpha: 0.5)
        let ai = UIActivityIndicatorView.init(activityIndicatorStyle: .whiteLarge)
        ai.startAnimating()
        ai.center = spinnerView.center

        DispatchQueue.main.async {
            spinnerView.addSubview(ai)
            onView.addSubview(spinnerView)
        }

        return spinnerView
    }

    class func removeSpinner(spinner :UIView) {
        DispatchQueue.main.async {
            spinner.removeFromSuperview()
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果不是扩展名,则可以执行此操作,例如代码位于tableController内,并且

let indicator = UIActivityIndicator()

然后使用

func scrollViewDidScroll(_ scrollView: UIScrollView) {
  // change frame of indicator by scrollview.contentOffset.y
}

您还可以扩展

class MyTableConWithIndicator:UITableViewController {

   let indicator = UIActivityIndicator()

   func scrollViewDidScroll(_ scrollView: UIScrollView) {
     // change y'frame of indicator by scrollview.contentOffset.y
   }
   func addIndicator() {}
   func removeIndicator() ()
}

然后在每个tableController中从其扩展

class MyTable:MyTableConWithIndicator {} 
相关问题