2015-02-01 4 views
0

У меня действительно странная проблема. Первый мой код:Добавить subview перед вызовом метода

func viewDuringLoading(){ 
     var tabBarSize = self.tabBarController?.view.bounds.size 

     hider = UIView(frame: CGRectMake(0, 0, tabBarSize!.width, tabBarSize!.height)) 
     hider.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5) 


     indicator = UIActivityIndicatorView(frame: CGRectMake(hider.bounds.width/2 - 25, hider.bounds.height/2 - 25, 50, 50)) 

     indicator.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.6) 

     hider.addSubview(indicator) 
     indicator.startAnimating() 

     self.tabBarController?.view.addSubview(hider) 

     checkProducts() 

    } 

Как вы видите, я добавляю подвид на мой взгляд, и после того, что я называю нон метод асинхронной checkProducts. Моя проблема заключается в том, что subview добавляется к моему представлению после того, как мой checkProducts закончил работу.

Как решить эту проблему? Я думал об использовании async-потока. Но, похоже, это не работает.

ответ

1

Зависит от того, что вы делаете в checkProgress. Основываясь на том, что вы говорите, это звучит так: checkProgress - это синхронный метод, который блокирует основной поток, который не позволяет вашему представлению быть добавленным как подвью.

Что делает метод checkProgress? Что произошло, когда вы запускали его асинхронно? Если он вообще блокирует основной поток, он, вероятно, должен быть асинхронным независимо от того, блокирует ли он основной поток или нет.

+0

Я сделал свой метод checkProducts async, и теперь он работает. Большое спасибо. – Christian

+0

Не стесняйтесь принимать ответ, если он работает для вас :) –

+0

Выполнено. Извините, забыл это вчера. :) – Christian

Смежные вопросы