2016-04-12 45 views
14

Tôi có chế độ xem bảng với ô mẫu, trong ô mà tôi có số lần xem hình ảnh và một số văn bản bên dưới. Nhãn văn bản là một laine trong ô mẫu thử nghiệm, nhưng đôi khi nó có nhiều hơn một dòng, tôi đang tải dữ liệu vào dạng xem bảng sau khi cuộc gọi máy chủ. Nhãn trong bảng phân cảnh Các dòng được đặt thành 0 và ngắt dòng thành Gói từ. Tôi cũng đã thử http://candycode.io/automatically-resizing-uitableviewcells-with-dynamic-text-height-using-auto-layout/Chiều cao di động bảng động nhanh

nhưng không có hiệu lực. Nếu tôi sử dụng Using Auto Layout in UITableView for dynamic cell layouts & variable row heights mọi thứ hoạt động vì văn bản nhãn được xác định trước, nhưng tôi đang tải dữ liệu từ máy chủ và tôi tải lại bảngView sau cuộc gọi API và sau đó nhãn chỉ là một dòng.

+0

Liệu nhãn của bạn có hạn chế dưới lên tableViewCell? –

+0

có, tôi sử dụng các ràng buộc được đề xuất, tôi có nên xóa nó không? – SpyZip

+1

xem http://stackoverflow.com/questions/36437861/what-constraints-would-prevent-my-uiviews-from-stacking-on-top-of-each-other/36438009#36438009 – Scriptable

Trả lời

22

Bạn nên sử dụng UITableViewAutomaticDimension cung cấp giải pháp để hiển thị nội dung động.

Sử dụng dưới mã trong viewDidLoad:

tableView.estimatedRowHeight = YourTableViewHeight 
tableView.rowHeight = UITableViewAutomaticDimension 

Read more from here

Hy vọng nó giúp. :)

+1

này làm việc với autolayout! Tôi cũng thêm rằng "tableView.estimatedRowHeight = xxx" là cần thiết để làm cho nó hoạt động, nó không phải là tùy chọn. – smukamuka

12

đảm bảo UILabel chiều cao hạn chế không phải là hằng số, nếu không thay đổi nó phải thiết lập Quan hệ lớn hơn hoặc bằng từ thanh tra thuộc tính

đảm bảo UITableViewestimate chiều cao hàng thiết theo bạn.

self.TableName.estimatedRowHeight = 85 

and write in UITableViewcell class 


Cell.lbl_name.sizeToFit() 


Cell.lbl_name.numberOfLines = 0 

Hãy chắc chắn rằng phương pháp UITableViewDelegate bạn

func tableView(tableView: UITableView, 
    heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 

return UITableViewAutomaticDimension 
} 
Các vấn đề liên quan