我在界面设计器中有一个指向表视图的UIActivityIndicatorView。我尝试使用下面的代码将它放在屏幕中央:
override func viewWillLayoutSubviews() {
self.activityView.center = self.view.center
}但它似乎总是坐在页面上太‘低’,它似乎居中的UITableView,而不是在窗口的中间,我想(即。它被导航栏等向下推。)
发布于 2017-01-27 10:54:36
解决方案是将activityView框架设置为视图的边界。仅设置中心不起作用,因为tableView框架的y值为负值。
override func viewWillLayoutSubviews() {
self.activityView.translatesAutoresizingMaskIntoConstraints = true
self.activityView.frame = self.view.bounds
}发布于 2020-03-28 04:28:41
使用自动布局,您可以使用layoutMarginsGuide在UITableViews和UICollectionViews中获得正确的中心X,Y锚点:
activityView.translatesAutoresizingMaskIntoConstraints = false
activityView.centerXAnchor.constraint(equalTo: view.layoutMarginsGuide.centerXAnchor).isActive = true
activityView.centerYAnchor.constraint(equalTo: view.layoutMarginsGuide.centerYAnchor).isActive = true发布于 2017-01-27 16:44:45
您是否尝试过:
self.activityView.center = self.view.window?.center如果不是,那么这个如何:
let screenSize = UIScreen.main.bounds
self.activityView.center = CGPoint(x: screenSize.width / 2, y: screenSize.height / 2)它有点长,但能很好地处理通话中的状态栏。
https://stackoverflow.com/questions/41886374
复制相似问题