2016-06-30 4 views
0

많은 인기 앱에 로딩 표시기가있어 콘텐츠로 대체된다는 사실을 발견했습니다. 대부분의보기는 UITableViews입니다. 인디케이터를 보여주는 매체 앱으로 스크린 샷을 캡쳐합니다. 홈 피드의 비동기 콘텐츠를 가져 오면 로딩 회 전자가 콘텐츠로 대체됩니다.로딩 표시기를 표시 한 다음 iOS의 콘텐츠로 어떻게 교체합니까?

로딩 표시기를 수행하는 방법에 대한 온라인 예를 많이 보았는데 다음 CocoaPod : https://github.com/jdg/MBProgressHUD을 언급했습니다. 그러나 이것은 다르며 실제로는 전체보기 상단에 회 전자가있는 검은 색/회색 컨테이너 레이블이 있습니다. 가장 인기있는 앱은 (Facebook, Twitter, Medium)이 작업을 수행하지 않기 때문에 컨텐츠 영역에있는 로딩 스피너를 선호합니다.

나는 그들이 사용하는 접근 방식을 혼란스럽게 생각합니다. 흰색 배경과 표 위에 표시하고 숨기는 스피너가있는 별도의 UIView입니까? 테이블 뷰의 일부입니까? 나는 그것이 스피너 자체에 대한 UIActivityIndicator라고 추측합니다.

iOS에서 (스위프트를 통해) 어떻게해야합니까?

Medium iOS app screenshot

+0

가 어떻게 스피너 뷰를 만들 묻는 방법이나 하나 또는 둘 모두를 사용할 수 있나요? – vacawama

+0

그들이 사용하는 접근 방식을 혼란스럽게 생각합니다. 흰색 배경과 표시 및 숨기기 기능이있는 별도의 UIView입니까? 테이블 뷰의 일부입니까? 나는 그것이 스피너 자체에 대한 UIActivityIndicator라고 추측합니다. – demig0d

+1

내장 된'UIActivityIndicatorView'는 사실 별개의 뷰입니다. 'stopAnimating'을 호출 할 때까지 숨겨져 있고'stopAnimating'을 호출하면 다시 숨 깁니다. 그것은 투명한 배경을 가지므로 회 전자 만 볼 수 있습니다. 화면에있는 일부 뷰의 하위보기로 추가하고,'startAnimating'을 호출하고, 백그라운드 작업을 시작하고, 백그라운드 작업이 완료되면 주 스레드에서 회 전자에 'stopAnimating'을 호출합니다. – vacawama

답변

1

당신은 스피너에 테이블의 배경보기를 설정합니다.

self.tableView.backgroundView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray) 

그런 다음 전무로 설정하면 콘텐츠로드 (당신이 reloadData를 호출 할 때)