Tự động thanh toán bị bỏ qua trong UITableViewCell tùy chỉnh


92

Mặc dù đã thiết lập các ràng buộc cho tất cả các phần tử, bao gồm cả các phần tử theo chiều dọc cần thiết để ô tính toán chiều cao của nó, nhưng bố cục tự động dường như bị bỏ qua: tất cả các ô đều bị bóp.

Đây là ảnh chụp màn hình kết quả và các ràng buộc trong bảng phân cảnh. nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Trong VC chứa tableView, đây là mã trong viewDidLoad:

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

Nhận xét ra dòng thứ hai cho các ô có chiều cao là 120,0 nhưng Autolayout cũng bị bỏ qua.

Cảm ơn


Cập nhật

Để đơn giản hóa giao diện, tôi đã để lại một nhãn duy nhất với các ràng buộc:

  • Không gian dẫn đến chế độ xem siêu cao
  • Không gian trên cùng để xem siêu
  • Chiều rộng và chiều cao cố định (100 & 100)
  • Khoảng trống dưới cùng đến lề vùng chứa để đảm bảo rằng ô có tất cả các ràng buộc theo chiều dọc để xác định chiều cao của nó

Và với giao diện được đơn giản hóa này, bố cục tự động vẫn chưa được tính đến, điều này cho tôi thấy rằng vấn đề không đến từ các ràng buộc được thiết lập tồi.

Trong Trình kiểm tra kích thước, chiều cao hàng được đặt trên 120 và Tùy chỉnh được chọn. Ô có đúng lớp tùy chỉnh, định danh tái sử dụng ô đúng.


Cập nhật: giải pháp được tìm thấy

Đây là một sai lầm đơn giản, hãy xem câu trả lời của tôi bên dưới.


Kiểm tra thiết bị đầu cuối gỡ lỗi của bạn - có bất kỳ nhật ký NSLayoutConstraint nào trong đó cho thấy điều gì đó không hoạt động như mong đợi không?
Matthew Hallatt

Không có gì xuất hiện trong thiết bị đầu cuối gỡ lỗi @MatthewHallatt, cảm ơn bạn.
Kqtr

@Kqtr bạn thử comment 2 dòng này rồi chạy lại bình thường 1 lần để kiểm tra xem có thay đổi gì không?
Tushar Sharma

@TusharSharma Nhận xét hai dòng có tác dụng tương tự như nhận xét dòng Chỉ dòng chiều cao: ô có chiều cao là 120,0, nhưng bố cục tự động không hoạt động.
Kqtr

1
Trình tạo giao diện có hiển thị bất kỳ ràng buộc nào là thiếu hoặc không rõ ràng không? Kiểm tra dấu chấm than nhỏ màu vàng hoặc đỏ.
Matthew Hallatt

Câu trả lời:


248

Bố cục tự động bị bỏ qua vì cả ô nguyên mẫu VÀ UIView của ô đã được cấp cho lớp ô tùy chỉnh trong IB.

Đặt UIView trở lại lớp UIView đã giải quyết được vấn đề.

chỉ để được rõ ràng


2
Tôi đã bị mắc kẹt trong vấn đề này trong nhiều giờ và điều này đã giải quyết được nó, cảm ơn bạn!
candidev

Tôi đã lãng phí gần như cả ngày cho đến khi tôi đến đây .... Ngàn lời cảm ơn bạn.
Xuất hiện

-3

Tôi nghĩ vấn đề là bạn đang triển khai:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: 
IndexPath) -> CGFloat {

 return x
}

Bạn cần xóa inorder hàm này cho tableview để tính toán chiều cao tự động của nó cho các ô.


Cảm ơn, rất tiếc là tôi không ghi đè nó: tôi thực sự không có đại biểu cho tableView này, chỉ có một nguồn dữ liệu.
Kqtr

Bạn có đặt các ràng buộc textview cho tất cả các cạnh của ô không? Và bạn đã tắt tính năng cuộn của textView chưa?
Jaafar Barek

Nhãn nhiều dòng (0 dòng) có các ràng buộc đối với 1) khoảng cách theo chiều dọc với số ở bên trái của nó 2) khoảng trống trên cùng đến chế độ xem siêu cao 3) khoảng trống ở cuối đối với chế độ xem siêu cao và 4) khoảng cách dưới cùng với nhãn Đã hỏi.
Kqtr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.