滚动 UITableView 后 UIActivityIndicatorView 不出现
UIActivityIndicatorView Not Appearing After Scrolling UITableView
我有一个 table 视图控制器,我在 viewDidLoad()
的屏幕中央显示了一个 UIActivityIndicatorView
let bounds = UIScreen.mainScreen().bounds;
let width = bounds.size.width
let height = bounds.size.height
loadingIndicator = UIActivityIndicatorView(frame: CGRectMake(width / 2, height / 2, 75, 75))
loadingIndicator.layer.cornerRadius = 10
loadingIndicator.backgroundColor = kfbBlue
loadingIndicator.center = CGPointMake(width / 2, height / 2 - 37)
loadingIndicator.activityIndicatorViewStyle = .WhiteLarge
loadingIndicator.hidesWhenStopped = true
self.tableView.addSubview(loadingIndicator)
loadingIndicator.startAnimating()
这很好用。我有一个重新加载 table 视图数据的方法。 reload() 有效,但如果我在滚动 table 视图后按下调用此方法的按钮,则 activity 指示器不会出现。它仅在 table 视图向上滚动到顶部时出现。
func reload() {
loadingIndicator.startAnimating()
self.beginParsing()
}
无论 table 视图滚动了多远,如何让 activity 指示器出现在中心?
不要将 UIActivityIndicatorView
添加到 UITableView
。将它添加到包含 UITableView
的父视图的中心。您正在将其添加到 UITableView
的内容视图中,该视图将滚动。如果您希望它在滚动 UITableView
时仍然存在,请将其添加到外面。很可能是这样的:
self.view.addSubview(loadingIndicator)
而不是你的台词
self.tableView.addSubview(loadingIndicator)
如果您使用的是 UITableViewController
,最顶层的视图将是 TableView,因此您无法使用。您将不得不调整 activity 指示器的中心以考虑滚动位置:
loadingIndicator.center = CGPointMake(width / 2, self.tableView.contentOffset.y + height / 2 - 37)
我有一个 table 视图控制器,我在 viewDidLoad()
的屏幕中央显示了一个 UIActivityIndicatorViewlet bounds = UIScreen.mainScreen().bounds;
let width = bounds.size.width
let height = bounds.size.height
loadingIndicator = UIActivityIndicatorView(frame: CGRectMake(width / 2, height / 2, 75, 75))
loadingIndicator.layer.cornerRadius = 10
loadingIndicator.backgroundColor = kfbBlue
loadingIndicator.center = CGPointMake(width / 2, height / 2 - 37)
loadingIndicator.activityIndicatorViewStyle = .WhiteLarge
loadingIndicator.hidesWhenStopped = true
self.tableView.addSubview(loadingIndicator)
loadingIndicator.startAnimating()
这很好用。我有一个重新加载 table 视图数据的方法。 reload() 有效,但如果我在滚动 table 视图后按下调用此方法的按钮,则 activity 指示器不会出现。它仅在 table 视图向上滚动到顶部时出现。
func reload() {
loadingIndicator.startAnimating()
self.beginParsing()
}
无论 table 视图滚动了多远,如何让 activity 指示器出现在中心?
不要将 UIActivityIndicatorView
添加到 UITableView
。将它添加到包含 UITableView
的父视图的中心。您正在将其添加到 UITableView
的内容视图中,该视图将滚动。如果您希望它在滚动 UITableView
时仍然存在,请将其添加到外面。很可能是这样的:
self.view.addSubview(loadingIndicator)
而不是你的台词
self.tableView.addSubview(loadingIndicator)
如果您使用的是 UITableViewController
,最顶层的视图将是 TableView,因此您无法使用。您将不得不调整 activity 指示器的中心以考虑滚动位置:
loadingIndicator.center = CGPointMake(width / 2, self.tableView.contentOffset.y + height / 2 - 37)