giải pháp tốt nhất và sạch sẽ, nó chỉ là chơi với chiều cao của các tế bào, cho phép các hình ảnh được tự động thay đổi kích thước bởi Autolayout.
Nó rất dễ dàng:
Trong di động của bạn, thêm một UIImageView
và thiết lập kích thước bạn muốn có khi tế bào có chiều cao thực tế;
Đặt làm hạn chế của UIImageView
này, ít nhất trên cùng, dưới cùng và một trong các đường biên bên (phải hoặc trái); cũng đặt các ràng buộc để giữ tỷ lệ/chiều cao tỷ lệ/chiều cao;
Tại thời điểm này, khi các tế bào phát triển, hình ảnh phát triển về chiều cao, và để giữ cho tỷ lệ (nhờ hạn chế) nó là thay đổi kích cỡ chiều rộng là tốt, có LUÔN đúng và kích thước tương ứng.
Vậy bây giờ, bạn có chỉ để viết mã cho chiều cao của tế bào:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
static CGFloat cellDefaultHeight = /*the default height of the cell*/;
static CGFloat screenDefaultHeight = /*the default height of the screen i.e. 480 in iPhone 4*/;
CGFloat factor = cellDefaultHeight/screenDefaultHeight
return factor * [UIScreen mainScreen].bounds.size.height;
}
Rõ ràng, thiết lập các contentMode
của UIImageView
-AspectFill
.
Nguồn
2015-01-23 22:42:22
Tại sao? Điểm của màn hình lớn hơn là có thể hiển thị thêm thông tin trên màn hình. Từ những gì bạn mô tả, tại sao bận tâm hỗ trợ các màn hình lớn hơn nếu bạn chỉ hiển thị cùng một lượng thông tin, chỉ lớn hơn? – rmaddy
Tôi không biết cách đổi kích thước hình ảnh giữ cùng tỷ lệ khung hình. Đó thực sự là câu hỏi của tôi. – igrrik