2016-09-05 1 views
-1

내 응용 프로그램이 MySql 서버에서 데이터를 읽고 테이블 뷰에 표시합니다. 서버 호출의 시작 부분에서 응용 프로그램은 Light Gray의 배경색을 가진 뷰 ("pdView"라는 이름)로 tableView를 덮습니다. 그 뷰는있는 tableView도 (IB 설계)의 일부 장면의 일부이지만, 그냥 응용 프로그램 후화면 스위프트를 표시 할 때 시간이 오래 걸림 2.2

pdView.hidden = false 

를 사용하여 표시되기 서버에 호출 이전까지 숨겨진 상태에 데이터를 가져 와서 tableview를 채우고, 회색 화면 아래에 tableView에 표시된 데이터를 볼 수있는

 dispatch_async(dispatch_get_main_queue(), {() -> Void in 
     tableview.reloadData() 
    }) 

을 사용하여 테이블 뷰를 채 웁니다. 그때

pdView.hidden = true 

를 사용하여 뷰를 다시 숨기려고하지만 사라 회색 색상 약 44 초 응용 프로그램을합니다. 그 시간 동안 내 애플 리케이션 정상적으로 동작 하 고 위아래로 테이블을 스크롤 할 수 있습니다.

dispatch_async() 내부의보기를 숨기고 코드를 넣으려고했지만 아무 소용이 없습니다.

숨겨진 상태로 돌아간 직후에 pdView가 사라지도록이 문제를 해결하기 위해 수행해야 할 작업은 무엇입니까?

+0

'reloadData()'를 호출 한 직후에 숨기면 어떻게 될까요? –

+0

나는 그것을 너무 시도했다 - 도와주지 않았다 – Zvi

+0

나는 왜 누군가가 설명없이 질문을 downvoted했는지 알고 싶다. – Zvi

답변

0

UI를 별도의 스레드에서 업데이트하려고하는 것처럼 들립니다. pdView.hidden = true에 약간의 문맥을 제공해야합니다. 당신은

dispatch_async(dispatch_get_main_queue(), {() -> Void in 
    tableview.reloadData() 
    self.pdView.hidden = true 
}) 

주에게 도움이 selfself.pdView.hidden..에서

희망을 시도 할 수 있습니다.

+0

나는 그것을 시도했다 – Zvi

0

UI 코드는 주 스레드에서 가져와야합니다. 여기에는보기의 hidden 플래그 상태 변경과 같은 작업이 포함됩니다.

당신이뿐만 아니라

dispatch_async(dispatch_get_main_queue() 

에 대한 호출에 싸여 그 코드가 있습니까?

+0

네, 내 설명에서 언급했듯이 – Zvi

+0

설명은'pdView.hidden = false' 및'pdView.hidden = true' 문을 실행하는 컨텍스트에 대한 정보를 제공하지 않습니다. 더 많은 문맥과 함께 메소드에 대한 완전한 코드를 제공하려면 질문을 편집해야합니다. –

관련 문제