1
UIViewController의 일반 tableView에 refreshControl을 표시 할 수있는 확장 프로그램을 작성했습니다. 아래의 코드는 viewDidLoad()와 완전히 새로 고침 할 때 완벽하게 작동합니다. (관찰 이벤트로 Triggerend)refreshControl 확장이 imagePicker 다음에 회 전자를 표시하지 않습니다.
private func showLoader()
{
tableView.showRefreshControlWith(attributedTitle: "Loading Profile".localized())
}
private func hideLoader()
{
tableView.hideRefreshControl()
}
관찰자 :
확장 :의 ViewController에서
extension UITableView
{
func findRefreshControl() -> UIRefreshControl?
{
for view in subviews
{
if view is UIRefreshControl
{
print("The refresh control: \(view)")
return view as? UIRefreshControl
}
}
return nil
}
func addRefreshControlWith(sender: UIViewController, action: Selector, view: UIView)
{
guard findRefreshControl() == nil else { return }
let refreshControl = UIRefreshControl()
refreshControl.addTarget(sender, action: action, for: UIControlEvents.valueChanged)
view.addSubview(refreshControl)
}
func showRefreshControlWith(attributedTitle: String? = nil)
{
findRefreshControl()?.attributedTitle = NSAttributedString(string: attributedTitle!)
findRefreshControl()?.beginRefreshing()
}
func hideRefreshControl()
{
findRefreshControl()?.endRefreshing()
}
}
호출 수신자
_ = presenter.profilePictureUploadingPending.skip(first: 1).observeNext { _ in self.showLoader() }
_ = presenter.profilePictureUploaded.skip(first: 1).observeNext { _ in self.hideLoader() }
그러나 UIImagePicker를 입력하여 내 앱에 사진을 업로드하고 viewController로 돌아 오면 사진이 성공적으로 업로드 될 때까지 회전하는 프로세스를 다시 트리거해야합니다.
나는 내 코드를 디버깅하고이 방법을 발사되지만 스피너는 뷰 계층의 하위 뷰에서 사라와
나는이 문제를 해결할 수있는 방법을 잘 모르지만 정말 감사 ... 나타나지 않습니다 너희들의 도움이 필요하다!
감사합니다. Kevin.