2014-11-23 4 views
2

현재 어떤 헤더 뷰가 현재 테이블의 상단에 붙어 있는지에 따라 스크롤 할 때 현재 섹션 헤더가 무엇인지 파악해야합니다. 이 코드를 해봤지만 중간 일단 대신이 정상에 붙어 한번의 스크롤을 통해 헤더를 가져옵니다UITableView에서 헤더가 스틱을 결정하는 경우

 var paths = tableView.indexPathsForVisibleRows() 
     var topCellPath: NSIndexPath = paths?.first as NSIndexPath 
     if topCellPath.row != 0 { 
      // header stuck but not really 
     } 

어떤 도움을?

+0

'topCellPath.section'는 맨 위 셀의 섹션 번호를 알려줍니다. 맨 위의 셀이 섹션의 첫 번째 행인지 여부는 왜 신경 씁니까? – nhgrif

+0

스크롤 할 때 머리글을 나타내는 버튼을 강조 표시해야합니다. 그리고 새로운 헤더가 붙어 가자 마자 이것들을 바꾸고 싶습니다. – codeman

+0

헤더는 섹션 헤더입니다. 다시 말하지만, 섹션에있는 셀의 행이 중요한 이유는 무엇입니까? – nhgrif

답변

1

NSIndexPath은 회원 자격을가집니다. sectionrow.

회원은 section 회원으로 식별되는 특정 섹션에있는이 행의 경로를 알려주는 모든 정보를 제공합니다. row 회원은 어떤 섹션에 대한 정보를 제공하지 않습니다.

우리는 NSIndexPathsection 멤버 확인하여 소속 된 섹션 확인할 수 있습니다

switch topCellPath.section { 
    case 0: 
     // top visible cell is in section 0 
    case 1: 
     // top visible cell is in section 1 
    // etc. etc. 
    default: 
     // top visible cell is in some other section 
} 

그리고 우리는 이미 우리의 데이터 모델이 섹션 번호를 관련시키는 방법을 알고를 ... 우리가 헤더를 설정하려면이 옵션을 사용 in :

tableView(UITableView, viewForHeaderInSection: Int) -> UIView 
관련 문제