Câu trả lời:
Đó là 44 pixel. Chắc chắn rồi. Tôi sẽ không bao giờ quên con số đó.
44px cũng là chiều cao mặc định cho UIToolbar và UINavlationBar. (Cả hai đều chuyển sang 32px khi được tự động chuyển sang hướng ngang.)
Nếu bạn muốn kích thước mặc định trên bất kỳ thiết bị nào bạn có thể sử dụng: UITableViewAutomaticDimension
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
Mặc dù 44 pixel hiện tại là mặc định nhưng đây là một phương pháp hữu ích nếu ứng dụng của bạn phụ thuộc vào việc đặt giá trị mặc định.
UITableView.automaticDimensions
trong Swift 4
Nếu bạn muốn tính toán điều này một cách nhanh chóng, chỉ cần phân bổ một ô bảng giả và đọc chiều cao của nó
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;
Bằng cách này, bạn sẽ chống lại những thay đổi trong các phiên bản iOS trong tương lai, mặc dù tôi cho rằng điều đó là không thể.
"Khi style = UITableViewStylegrouped, chiều cao mặc định của các ô trên cùng & dưới cùng thực sự là 45.0f (không phải 44.0f). Và, nếu bảng được nhóm chỉ là một hàng thì chiều cao của ô sẽ là 46.0f." Nó sai!! 44.0f trên thực tế! Tôi chỉ kiểm tra nó!
Nghe có vẻ đúng. Nhưng để chắc chắn rằng bạn có thể tải lên Trình xây dựng giao diện, hãy đặt UITableViewCell vào dự án sau đó kiểm tra các thuộc tính kích thước trong cửa sổ Thanh tra. Tôi không có MacBook bên mình ngay bây giờ vì vậy tôi không thể kiểm tra. Nhưng nếu bạn không nhận được câu trả lời tốt hơn từ ai đó, đó là cách bạn có thể tự kiểm tra.
Trên iOS 12, chiều cao mặc định trên iPhone X như các thiết bị (X, XS, XS Max, XR) là 49pt .
Các thiết bị khác trên iOS 12 vẫn có 44pt làm mặc định. Đó là một sự khác biệt tinh tế, nhưng nó cảm thấy như một sự cải thiện tốt trong so sánh trực tiếp.
Nếu bạn không tin tôi, hãy tự đo trong ảnh chụp màn hình này (đừng quên chia cho 3) ...;)