2011-07-12 33 views
16

Chân trang của chế độ xem bảng là chế độ xem hiển thị một số tweet từ người dùng, vì vậy tôi không biết chiều cao của nó cho đến khi tôi nhận được tweet, tôi đã tạo một FooterViewController có phương thức refreshTweets, tôi thêm nó vào viewDidLoad:UITableView: thay đổi kích thước của chế độ xem footer theo chương trình không hoạt động

FooterViewController *controller = [[FooterViewController alloc] initWithNibName...]; 
[[self tableView] setFooterView:[controller view]]; 
[controller refreshTweets]; 

trong phương pháp refreshTweets, tôi đọc tweets và tính toán tổng chiều cao, và đặt lại view (footer) 's height:

self.view.frame = newFrame; 

nhưng nó không có ý nghĩa, chiều cao của footer vẫn là chiều cao tôi đặt trong Giao diện Builder, có bất cứ điều gì thiếu hoặc bất kỳ cách nào khác để làm điều này?

Cảm ơn!

chỉnh sửa: Tôi có thể thay đổi kích thước của chế độ xem đủ nhỏ trong trình tạo giao diện và nó sẽ được mở rộng sau khi tính chiều cao và khung nhìn thiết lập của tweets, nhưng chế độ xem bảng vẫn cho rằng chân trang của nó có chiều cao trước đó là, không gian thừa nằm ngoài bảng nhìn và tôi chỉ có thể nhìn thấy nó nếu tôi kéo bảng lên.

Trả lời

39
myTable.tableFooterView = myFooterView; 

Chỉ định chế độ xem chân trang của bạn cho bảng. Bảng sẽ nhận ra nó có một chân trang mới và làm lại bất kỳ bố trí nào cần phải xảy ra với kích thước thích hợp của chân trang.

+1

Một hữu ích (và nhiều tiết) liên kết có thể là một này về thay đổi kích thước tableHeaderView ; hoạt động hoàn hảo cho tableFooterView, quá: http://davidjhinson.wordpress.com/2009/03/24/resizing-a-uitableviews-tableheaderview/ – weienw

0

Để thay đổi khung nhìn chân ở đây là tinh chỉnh đơn giản: -

Trong Swift: -

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
    return 0.5 
} 


func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
    let footerView = UIView() 
    let footerChildView = UIView(frame: CGRect(x: 60, y: 0, width: tableView.frame.width - 60, height: 0.5)) 
    footerChildView.backgroundColor = UIColor.darkGray 
    footerView.addSubview(footerChildView) 
    return footerView 
} 
Các vấn đề liên quan