2017-10-30 12 views
0

UIViewController 내에 UITableView가 있습니다. UIRefreshControl이 새로 고침 기능을 사용하도록 설정하려고합니다. 아래는 제 코드입니다.UIRefreshControl가 나타나지 않습니다.

하지만 시뮬레이터에서 실행하고 테이블 뷰를 아래로 드래그하면 아무 일도 일어나지 않으며 아무 것도 표시되지 않습니다. 테이블 뷰에 새로 고침을하는 것과 같은 것입니다.

어떻게 해결할 수 있습니까?

+0

어떤 함수에'if' 문이 들어 있습니까? – Paulw11

+0

@ Paulw11'viewDidLoad' –

+1

이 코드는 제게 좋았습니다. 똑같은 일이 제 시뮬레이터에서 작동합니다. iOS 9 및 iOS 10+에서 모두 시도했습니다. –

답변

0

내 이해에 따르면, 이것은 지연 초기화로 refreshControl을 선언했기 때문에 발생합니다. 그리고 당신은 그것의 측면에서 tableview에 refreshControl을 추가하고 있습니다.

지연은 refreshControl 초기화를 지연하지만 그 전에는 refreshControl이 tableview에 추가되지만 여기서 refreshControl은 비어 있습니다. 그래서 그것은 작동하지 않습니다.

게으른 직접 초기화 (아래 주어진 것과 같은)를 제거해보십시오. 나는 그것이 효과가 있기를 바랍니다.

var refreshControl = UIRefreshControl() 
    refreshControl.addTarget(self, action: 
     #selector(MainViewController.refreshData), 
          for: .valueChanged) 
    refreshControl.tintColor = UIColor.darkGray 

// Within viewDidLoad 
if #available(iOS 10.0, *) { 
    myTableView.refreshControl = refreshControl 
} else { 
    myTableView.addSubview(refreshControl) 
} 
+0

여전히 작동하지 않았습니다. –

+0

tableview 속성을 스토리 보드 tableview에 연결하는 것을 잊지 않았습니까? 그것을 다시 확인하십시오. 그렇지 않으면 오류가 없어야합니다. –

+0

방금 ​​데모 프로젝트를 만들었고 제대로 작동합니다. 나는 그것이 [SwipeCellKit] (https://github.com/SwipeCellKit/SwipeCellKit)과 관련이 있는지 궁금해. –