swift - Indicator activity not showing -


i have code show activity indicator in swift, it's not working properly.

the activity indicator doesn't appear, after code inside configuration func loaded correctly.

what going wrong in code?

here code , image:

import uikit  class selecionapaisviewcontroller: uiviewcontroller, uitableviewdelegate, uitableviewdatasource, uisearchresultsupdating {      //mark: - outlets     @iboutlet weak var paisestableview: uitableview!      //mark: - propriedades     var paises = [paiscodigo]()     var paisesfiltrado = [paiscodigo]()      var controladordebusca: uisearchcontroller!      var container: uiview = uiview()     var loadingview: uiview = uiview()     var indicadordeatividade: uiactivityindicatorview!      //mark: - métodos reescritos da view     override func viewdidload() {         super.viewdidload()          paisestableview.delegate = self         paisestableview.datasource = self          //carrega configuração searchcontroller         configurarcontroladordebusca()          //carrega indicador de atividade         configurarindicadordeatividade()          //dados dos países         carregadadospaises()          //configura comportamento da tabela         configuracomportamentodatabela()     }      override func viewdidappear(animated: bool) {         //inicia         iniciaindicadordeatividade()     }      override func didreceivememorywarning() {         super.didreceivememorywarning()         // dispose of resources can recreated.     }      // mark: - métodos da table view data source     func numberofsectionsintableview(tableview: uitableview) -> int {         return 1     }      func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int {         if controladordebusca.active {             return paisesfiltrado.count         } else {             return paises.count         }     }      func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell {         let cell = tableview.dequeuereusablecellwithidentifier("paiscell", forindexpath: indexpath)          let pais: paiscodigo          if controladordebusca.active {             pais = paisesfiltrado[indexpath.row]         } else {             pais = paises[indexpath.row]         }          cell.textlabel?.text = pais.nome + " (+" + string(pais.codigo) + ")"          if pais.nome != pais.nomeingles {             cell.detailtextlabel?.text = pais.nomeingles         } else {             cell.detailtextlabel?.text = ""         }          return cell     }      //mark: - métodos uisearchresultsupdating     func updatesearchresultsforsearchcontroller(searchcontroller: uisearchcontroller) {         //paisesfiltrado.removeall(keepcapacity: false)          filtrarbusca(controladordebusca.searchbar.text!)     }      //mark: - métodos     func carregadadospaises() {         //carrega dados dos países         let pais1 = paiscodigo(nome: "brasil", nomeingles: "brazil", codigo: 55)         let pais2 = paiscodigo(nome: "united states", nomeingles: "united states", codigo: 1)         let pais3 = paiscodigo(nome: "argentina", nomeingles: "argentina", codigo: 54)         let pais4 = paiscodigo(nome: "australia", nomeingles: "australia", codigo: 61)          paises += [pais1, pais2, pais3, pais4]          //paisestableview.reloaddata()     }      func configurarcontroladordebusca() {         //configura controlador de busca         controladordebusca = uisearchcontroller(searchresultscontroller: nil)         controladordebusca.searchresultsupdater = self         controladordebusca.dimsbackgroundduringpresentation = false         definespresentationcontext = true          controladordebusca.loadviewifneeded()          //configura barra controlador de busca         controladordebusca.searchbar.placeholder = "search country"         controladordebusca.searchbar.sizetofit()         controladordebusca.searchbar.bartintcolor = navigationcontroller?.navigationbar.bartintcolor         //controladordebusca.searchbar.translucent = true         controladordebusca.searchbar.tintcolor = uicolor.whitecolor()          //adiciona barra controlador de busca table view         paisestableview.tableheaderview = controladordebusca.searchbar     }      func configurarindicadordeatividade() {          container.frame = paisestableview.frame         container.center = paisestableview.center         container.backgroundcolor = uicolorfromhex(0xffffff, alpha: 0.2)          loadingview.frame = cgrectmake(0, 0, 80, 80)         loadingview.center = container.center         loadingview.backgroundcolor = uicolorfromhex(0x444444, alpha: 0.4)         loadingview.clipstobounds = true         loadingview.layer.cornerradius = 10          //configura indicador de atividade         indicadordeatividade = uiactivityindicatorview()         indicadordeatividade.center = loadingview.center         indicadordeatividade.hideswhenstopped = true         indicadordeatividade.activityindicatorviewstyle = uiactivityindicatorviewstyle.whitelarge         indicadordeatividade.tintcolor = uicolor.redcolor()          //adiciona o indicador view         container.addsubview(loadingview)         loadingview.addsubview(indicadordeatividade)         view.addsubview(container)          indicadordeatividade.hidden = false     }      func iniciaindicadordeatividade() {         indicadordeatividade.startanimating()     }      func paraindicadordeatividade() {      }      func configuracomportamentodatabela() {         paisestableview.hidden = !indicadordeatividade.hidden         paisestableview.userinteractionenabled = !paisestableview.hidden     }      func filtrarbusca(textodebusca: string) {         //filtrar resultados de busca         paisesfiltrado = paises.filter{ paiscodigo in             return paiscodigo.nome.lowercasestring.containsstring(textodebusca.lowercasestring) || paiscodigo.nomeingles.lowercasestring.containsstring(textodebusca.lowercasestring)         }          paisestableview.reloaddata()     }      func uicolorfromhex(rgbvalue:uint32, alpha:double=1.0)->uicolor {         //conversor de cores em hex         let red = cgfloat((rgbvalue & 0xff0000) >> 16)/256.0         let green = cgfloat((rgbvalue & 0xff00) >> 8)/256.0         let blue = cgfloat(rgbvalue & 0xff)/256.0         return uicolor(red:red, green:green, blue:blue, alpha:cgfloat(alpha))     } 

enter image description here

your indicadordeatividade.center incorrect. center property of uiview uses coordinate system of superview, you've placed activity indicator way off screen.

in function configurarindicadordeatividade, replace:

indicadordeatividade.center = loadingview.center 

with:

indicadordeatividade.center = cgpointmake(loadingview.frame.width / 2, loadingview.frame.height / 2) 

Comments

Popular posts from this blog

java - nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet Hibernate+SpringMVC -

sql - Postgresql tables exists, but getting "relation does not exist" when querying -

asp.net mvc - breakpoint on javascript in CSHTML? -