【发布时间】:2015-05-12 06:44:53
【问题描述】:
是否有人知道停止 UIActivityIndicatorView (AI)/删除已添加到 UIPageViewController 的 UIView 的问题?
我正在使用以下方法展示 AI:
override func viewWillLayoutSubviews() {
actInd.frame = CGRectMake(0,0, 80, 80)
actInd.center.x = self.view.center.x
actInd.center.y = self.view.center.y - 40
actInd.hidesWhenStopped = true
actInd.layer.cornerRadius = 5
actInd.alpha = 0.5
actInd.backgroundColor = UIColor.blackColor()
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
self.view.addSubview(actInd)
actInd.startAnimating()
// This next line prints out the details of each subview on the page for testing purposes
listSubviews(self.view)
出于测试目的,我还使用以下方法将空白 UIView 添加到视图中:
aView.frame = CGRectMake(0, 0, 200, 200)
aView.backgroundColor = UIColor.blueColor()
self.view.addSubview(aView)
}
然后我使用委托发送我的 Parse.com 查询,以便在数据准备好时通知 UIPageViewController(例如此视图)。这工作正常,我已经测试了数据是否正确返回,并且正在调用预期的方法。
在这种方法中,我尝试停止 UIActivityViewController 并尝试隐藏 aView:
self.actInd.stopAnimating()
aView.removeFromSuperView()
这不起作用,所以我尝试了:
self.actInd.removeFromSuperView()
这也不起作用。所以我然后尝试使用以下方法搜索当前视图的子视图:
func populateBoards(boards: [Board]) {
println(self.actInd) // PRINT LINE 1
var subviews = self.view.subviews
for v in subviews {
if v.isKindOfClass(UIActivityIndicatorView) {
println("YES, it is an activity view indicator \(v)") // PRINT LINE 2
v.stopAnimating()
v.removeFromSuperview()
}
}
self.boards = boards
println("Populated Boards!") // PRINT LINE 3
}
打印第 1 行输出:>
PRINT LINE 2 输出:YES,它是一个活动视图指示器 >
PRINT LINE 3 输出:“Populated board!”
编辑:
使用以下代码设置 UIPageViewController(以防万一):
func setupUIPageView() {
self.pageViewController = UIPageViewController(transitionStyle: UIPageViewControllerTransitionStyle.Scroll, navigationOrientation: UIPageViewControllerNavigationOrientation.Horizontal, options: nil)
self.pageViewController.delegate = self
self.pageViewController.dataSource = self
var startVC = self.viewControllerAtIndex(0) as ViewController
var viewControllers:[ViewController] = [startVC]
self.pageViewController.setViewControllers(viewControllers, direction: .Forward, animated: true, completion: nil)
self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height)
self.pageViewController.view.alpha = 0.0
self.addChildViewController(self.pageViewController)
self.view.addSubview(self.pageViewController.view)
self.pageViewController.didMoveToParentViewController(self)
}
帮助!提前谢谢大家:D
【问题讨论】:
标签: ios swift uipageviewcontroller