2013-08-05 33 views
12

Có thể cuộn đến một phần thay vì một hàng không? Nếu thế thì sao?UITableView Di chuyển đến phần

Btw. Tôi đang sử dụng một phương pháp để loại bỏ các tiêu đề nổi.

Đây là mã mà tôi sử dụng để di chuyển đến hàng đầu tiên của phần đã chọn.

if (self.openSectionIndex != NSNotFound) { 
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:section] atScrollPosition:UITableViewScrollPositionTop animated:YES]; 
} 

đây là đoạn code để loại bỏ các tiêu đề nổi

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (self.openSectionIndex != NSNotFound) { 
     if (scrollView.contentOffset.y<=DEFAULT_HEADER_HEIGHT&&scrollView.contentOffset.y>=0) { 
      scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); 
     } else if (scrollView.contentOffset.y>=DEFAULT_HEADER_HEIGHT) { 
      scrollView.contentInset = UIEdgeInsetsMake(-DEFAULT_HEADER_HEIGHT, 0, 0, 0); 
     } 
    } 
} 

Đây là bằng cách nào đó những gì tôi muốn, nhưng tôi thà cũng hiển thị tiêu đề.

Ngay bây giờ tiêu đề bị ẩn ở chế độ màn hình ngoài ở trên cùng.

+0

Bạn muốn cuộn đến phần nào? Câu hỏi của bạn không rõ ràng lắm. –

+0

Tôi muốn cuộn lên đầu phần. Xin lỗi, sẽ làm cho nó rõ ràng hơn trong một chút. – chrs

+0

Và mã bạn viết không hoạt động? Có vẻ khá thẳng về phía trước mà bạn di chuyển đến hàng 0 của phần đó và đặt nó lên trên. –

Trả lời

7

Thay vì scrollToRowAtIndexPath, hãy sử dụng scrollRectToVisible. Bạn có thể nhận được vị trí chính xác bằng cách đi qua trực tràng với kích thước tương tự như chế độ xem bảng.

Vì vậy, nếu bạn muốn tiêu đề của bạn được định vị chính xác ở trên cùng, hãy sử dụng khung của tiêu đề, đặt chiều cao cho khung của bảng và sau đó chuyển đến scrollRectToVisible.