2016-10-23 2 views
1

화면의 전체 프레임을 차지하는 UITableView 헤더가 있습니다.테이블보기로 스크롤하십시오. 헤더 상단

앱이 백그라운드에서 포어 그라운드/액티브로 돌아올 때마다 화면을 화면으로 다시 설정하고 싶습니다.

난 단지 self.tableView.scrollToRow(at: top, at: .top, animated: true) 같은 것을 사용이 answers 같은으로 테이블의 상단에 스크롤로 할 필요가 답변을 본 적이 있지만 그것은 단지 제 0 행 0으로 다시 스크롤 때문이 작동하지 않습니다 UITableViewUITableView의 헤더 상단이 아닙니다.

아이디어가 있으십니까?

감사합니다.

편집

override func viewWillAppear(_ animated: Bool) { 
    self.tableView.setContentOffset(CGPoint(x: 0, y: 0) , animated: true) 
} 

을 시도하고 여기에 몇 가지 주목할만한 테이블 설정 코드 :

// Set up Frames 
let headerFrame: CGRect = UIScreen.main.bounds 
// Background Table 
self.tableView.isPagingEnabled = true 

// Set up Table Header 
let header = UIView(frame: headerFrame) 
self.tableView.tableHeaderView = header  
+0

당신은 스토리 보드 스크린 샷을 게시 할 수 있습니까? – Joe

+0

@Joe 스토리 보드는 코드에서 대부분을 수행하고 있기 때문에 꽤 공백입니다. 도움을주기 위해 추가 할 수있는 특정 코드가 있습니까? – SRMR

+0

코드와 스크린 샷을 업데이트 할 수 있습니까? 그게 전부 도움이 ... – Joe

답변

5

의 TableView에 스크롤 뷰 서브 클래스, 그래서이 작동합니다 상상 :

self.tableView.setContentOffset(CGPoint(x: 0, y: 0) , animated: true) 

ViewWillAppear은 앱이 시작될 때 호출되지 않습니다. 전경. 당신에게 VC를 등록하십시오 UIApplicationWillEnterForegroundNotification

+0

나는 이것이 작동하는 것을 확인했다. 그냥 당신의'viewWillAppear'에 이것을 추가하십시오 –

+0

어떤 이유로 저는 그것을 시도했지만 저에게 효과적이지 않았습니다. 위 코드를 게시하여 내가 권장하는 것과 다른 것을하고 있는지 확인할 수 있습니다. 하지만 그것을 테스트하기 위해 앱을 실행하고 tableview의 두 번째 섹션으로 스크롤하여 집으로 앱을 백그라운드로 보내고 앱 아이콘을 탭하여 앱을 포 그라운드로 되돌려 놓았지만 두 번째 섹션에 머물렀다. 위쪽/머리글로 스크롤하는 대신 tableview의. – SRMR

+0

@SRMR 뷰가 호출되는 메서드가 나타 났습니까? –

관련 문제