2013-07-28 29 views
6

làm thế nào để có được vị trí tuyệt đối của một tiêu đề phần trong tableview?làm thế nào để có được vị trí tuyệt đối của một tiêu đề phần trong tableview?

Tôi đã sử dụng để có được tableView:viewForHeaderInSection: view.But của tiêu đề bây giờ tôi cần phải có được vị trí tuyệt đối của chế độ xem này trên màn hình. khung giá trị trả về không phải là vị trí tuyệt đối trong màn hình. Tôi cũng đã cố gắng gọi superview, nhưng có vẻ như nó không hoạt động.

+0

Giá trị trả lại là gì? Âm thanh như bạn sẽ phải đưa vào tài khoản bù đắp của tableview và bù đắp nội dung của tableview (Tôi không hoàn toàn chắc chắn nếu có một nội dung bù đắp). – JeffRegan

+0

Tôi chỉ cần để có được vị trí tuyệt đối của phần đầu trong màn hình.Nhưng tôi không biết làm thế nào ... (Sử dụng tableView: viewForHeaderInSection: có vẻ không đúng cách) – nicecafe42

+0

Cuối cùng tôi đã giải quyết được vấn đề của mình bằng cách đặt thẻ cho phần của tôi xem xét của người tiêu đề, và nhận được nó với tag.Many cảm ơn ~ – nicecafe42

Trả lời

8

tableView:viewForHeaderInSection: là một phương pháp UITableViewDelegate để tạo một cái nhìn tiêu đề để hiển thị. Tuy nhiên, điều này có nghĩa là chế độ xem không được thêm vào cấu trúc phân cấp chế độ xem, hiển thị khung của nó vô nghĩa cho mục đích của bạn.

Hãy thử

UIView *headerView = [tableView headerViewForSection:sectionIndex]; 

để thay thế. Từ đó, bạn có thể thử các phương pháp sau trên chế độ xem được trả về để xem trực tiếp chế độ xem trong hệ tọa độ của chế độ xem khác:

[headerView convertRect:[headerView bounds] toView:[headerView window]]; 
+0

Cuối cùng tôi đã giải quyết vấn đề của tôi bằng cách thiết lập một thẻ để xem phần đầu của phần của tôi, và nhận được nó với tag.Many thanks ~ – nicecafe42

+0

[tableView rectForHeaderInSection: section] – tettoffensive

0

Giả sử rằng quan điểm cấp cao nhất của bạn trực tiếp chứa xem bảng mà lần lượt chứa tiêu đề:

- (CGRect) getHeaderAbsoluteFrame : (UIView *)headerview :(UIView *)tableview 
{ 
    CGRect frame = headerview.frame; 
    CGRect tableFrame = tableview.frame; 

    float x = tableview. origin.x + headerview.frame.origin.x; 
    float y = tableview.frame.origin.y + headerview.frame.origin.y; 

    CGRect rect = CGRectMake (x,y,headerview.frame.size.width, headerview.frame.size.height); 
    return rect; 
} 
Các vấn đề liên quan