2015-06-22 17 views
5

Tôi có một UITableView, tôi đang thêm tableFooterView được tải từ một xib.Làm cách nào để đặt chiều cao thành tableFooterView được tải từ một xib

var footer = NSBundle.mainBundle().loadNibNamed("AFooterView", owner: self, options: nil).first as! AFooterView 
self.tableView.tableFooterView = footer 

Điều này làm việc tốt, nhưng tôi cần có thể đặt chiều cao cho chân trang này. Các xib chỉ có một UIImageView tập trung theo chiều dọc và chiều ngang để nó sẽ thích nghi với bất kỳ chiều cao của khung nhìn.

Tôi không biết cách làm điều này với AutoLayout? Điều gì sẽ là con đường đúng để làm theo?

+0

Bạn có thể thêm một lối thoát để một hạn chế quản lý chiều cao của tầm nhìn và thay đổi nó hằng số là kích thước bạn muốn - trước khi gán nó cho 'tableFooterView' –

+0

Có lý do nào bạn không chỉ thiết lập chiều cao của footer view trực tiếp trong xib của bạn không? – JJC

+0

Tôi không thể thiết lập nó trong xib vì chiều cao thay đổi, tôi không biết làm thế nào để làm điều đó một cách tự nhiên với autolayout ... @JJC – Andres

Trả lời

7

Tôi xin lỗi vì sự nhầm lẫn, đây là câu trả lời Cập nhật:

Tôi biết bạn có thể làm điều này bằng cách thiết lập chiều cao khung hình, nhưng nó cũng có thể làm việc với bố trí tự động chỉ bằng cách tái gán chân xem sau khi imageView của bạn đã tải xong.

// either let auto layout calculate the frame, or set the frame yourself 
// I set the width to an arbitrary size but it doesn't seem to matter, 
// it will automatically be adjusted by the tableview when you assign it 
CGFloat width = 100; 
CGFloat height = 500; 
footerView.frame = CGRectMake(0, 0, width, height); 
// this is the "trick": re-assign the footerView after its size has been updated 
// so that the tableView will show it correctly 
tableView.tableFooterView = footerView; 

Để biết thêm thông tin, xem Resizing a UITableView’s tableHeaderView

Câu trả lời ban đầu nói về phần cuối trang, không bảng xem footers

+0

Xin lỗi vì sự nhầm lẫn; Nếu bạn có tất cả các ràng buộc đã được thiết lập và tính toán (cũng hoạt động nếu bạn đã thiết lập chiều cao khung của chính mình), chỉ cần gán lại khung nhìn footer 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ố cục nào cần phải xảy ra với kích thước thích hợp của chân trang: 'yourTableView.tableFooterView = yourFooterView;' – Velociround

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