Я хочу, чтобы пользователь не взаимодействовал с представлением таблицы, пока я получаю некоторые данные.
Таким образом, я могу показать и удалить представление, такое что:
var dimmingView: UIView?
добавляется и удаляется с помощью:
func showLoading() {
let dimmingView = UIView(frame: view.frame)
dimmingView.backgroundColor = .darkGray
view.addSubview(dimmingView)
let activityIndicator = UIActivityIndicatorView(style: .whiteLarge)
activityIndicator.translatesAutoresizingMaskIntoConstraints = false
dimmingView.addSubview(activityIndicator)
NSLayoutConstraint.activate([
activityIndicator.centerXAnchor.constraint(equalTo: dimmingView.centerXAnchor),
activityIndicator.centerYAnchor.constraint(equalTo: dimmingView.centerYAnchor)
])
activityIndicator.startAnimating()
self.dimmingView = dimmingView
}
А также
func removeLoading() {
dimmingView?.removeFromSuperview()
}
Однако при добавлении он перемещается вместе со столом (свитки).Если я остановлю прокрутку таблицы при загрузке новых данных, она появится за UINavigationBar (по крайней мере, первая ячейка).Если я пытаюсь добавить в navigationcontroller.view, файл navigation.controller равен nil (поэтому я не могу).
Каков наилучший подход?