Tôi có một UITableViewCell
với nhãn tùy chỉnh sử dụng AutoLayout. Đó là các ràng buộc được thiết lập với một không gian hàng đầu, cuối, cuối, và trên không đổi cho chế độ xem nội dung. Bộ điều khiển xem bảng mà các ô này xuất hiện ở bên trong một số UISplitViewController
. Khi chế độ xem bảng được tải, tôi tính chiều cao của ô bằng cách sử dụng mã sau:tableview: heightForRowAtIndexPath: Kích thước chế độ xem nội dung báo cáo không chính xác với AutoLayout
CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
CGFloat height = size.height;
Chân dung cho phép tôi hiển thị chính xác ô. Đây là một ảnh chụp màn hình của một phần của tế bào:
Tuy nhiên, khi tôi xoay iPad vào cảnh quan, nó không phải là tính toán kích thước chính xác và kết thúc với quá nhiều padding:
Đặt điểm ngắt khi số tableview:heightForRowAtIndexPath:
được gọi khi xoay kích thước của chế độ xem nội dung không được báo cáo chính xác. Trong thực tế, nó đang báo cáo kích thước cũ, hẹp hơn của chế độ xem bảng.
Làm cách nào để các ô của tôi đổi kích thước phù hợp với UISplitViewController
trên iPad?
Dường như ô của bạn chứa UILabels nhiều dòng. Để có được chiều cao chính xác, các nhãn sẽ cần thuộc tính 'preferredMaxLayoutWidth' được đặt chính xác thành độ rộng có sẵn (có khả năng khác khi thiết bị được xoay). Nếu bạn chưa thấy bài đăng này, hãy xem bài đăng đó cũng như dự án mẫu trên GitHub trong các nhận xét: http://stackoverflow.com/questions/18746929/using-auto-layout-in-uitableview-for-dynamic -cell-layouts-heights – smileyborg
Bạn có tạo thêm mã và đặt bất kỳ điều khiển nào không? Bạn có thể thêm mã của mình ở đây không? –