2011-03-30 38 views
13

Trong UITableView của tôi, tôi có tableHeaderView nên tự thay đổi kích cỡ theo nội dung. Thay đổi kích thước hoạt động tốt, tuy nhiên, tableHeaderView che khuất một vài ô đầu tiên. Thay đổi một cách rõ ràng khung của tableHeaderView không sắp xếp lại phần còn lại của khung nhìn.Thay đổi chiều cao của bảngHeaderView ẩn các ô

Tôi đã thử gọi [self.tableView layoutSubViews][self.tableView setNeedsLayout], nhưng cũng không giúp ích gì. Cũng đã cố gắng cho tableHeaderView từ Interface Builder một ổ cắm để thay đổi khung trên đó, nhưng điều đó không tổ chức lại tableView một trong hai.

Làm cách nào để thay đổi kích thước của bảngHeaderView, mà không ẩn bất kỳ ô nào, sắp xếp lại phần còn lại của tableView?

+1

cố gắng nhập '[myView setClipsToBounds: YES];' trong 'viewForheaderInSection' của bạn, bạn có thể xem kích thước bạn xem mất – Seega

Trả lời

4

Tôi không biết bạn đã tạo ra UITableView như thế nào, nhưng tôi đã cố tạo một bảng có tableHeaderView giống như bạn và nó đang thay đổi kích thước.

Tôi tạo ra một lớp kế thừa từ UITableViewController

@interface MyTableViewController : UITableViewController { 

} 

@end 

và để thực hiện, trong viewDidLoad, tôi nói thêm:

UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)]; 
[header setBackgroundColor:[UIColor redColor]]; 
self.tableView.tableHeaderView = header; 

enter image description here

+0

Tôi đã tạo TableView thông qua một TableViewController bằng một tệp nib. Trong đó tôi đã thêm một khung nhìn cho tableHeaderView và chèn một nhãn có chứa nội dung. Tôi thay đổi nội dung và khung nhãn bằng cách điều chỉnh IBOutlet. Nhưng làm tương tự với tableHeaderView IBOutlet, không tổ chức lại tableview. – SpacyRicochet

+2

Cuối cùng, tôi đã sử dụng phương pháp này mà không tạo chế độ xem trong Trình tạo giao diện. Cảm ơn! – SpacyRicochet

+0

Hey! Tại sao tôi thêm các dòng giống nhau vào viewDidLoad và tôi không thể thấy khối màu đỏ ở trên ?! –

22

Hãy thử thiết lập thuộc tính tableHeaderView của UITableView sau khi bạn thay đổi kích thước nội dung của mình.

[self.tableView setTableHeaderView:self.myResizedTableHeaderView]; 

Giải quyết vấn đề cho tôi. Hy vọng nó giúp.

+3

dành riêng cho tôi, tôi trì hoãn việc định cỡ kích thước cho đến khi viewWillAppear: vì bộ điều khiển của tôi được khởi động động và do đó không có hình dạng phù hợp để tham chiếu cho đến lúc đó. – qix

Các vấn đề liên quan