Tôi muốn hiển thị rất nhiều hình ảnh trong ô bảng. Tôi biết hai phương pháp để hiển thị một hình ảnh.sự khác nhau giữa UIImageView và drawInRect là gì?
Một là tạo ra một ví dụ để UIImageView và hiển thị nó
CGRect rect=CGRectMake(x,y,width,height);
UIImageView *image=[[UIImageView alloc]initWithFrame:rect];
[image setImage:[UIImage imageNamed:@"sample.jpg"]];
phương pháp khác là,
CGRect rect=CGRectMake(x,y,width,height);
[[UIImage imageNamed:@"sample.jpg"] drawInRect:rect];
Bây giờ, câu hỏi của tôi là, sự khác biệt giữa hai là gì? Cái nào hiệu quả? Hoặc chức năng someother có sẵn tốt hơn này?
Cảm ơn trước ....
+1 cho câu trả lời tuyệt vời. Tôi đã cố gắng để có được đầu của tôi xung quanh sự khác biệt giữa hai người trong một thời bây giờ. Vì vậy, 'UIImageView' luôn luôn là con đường để đi, sau đó? Có những trường hợp mà 'drawRect:' 'ing trực tiếp hình ảnh là thích hợp hơn không? –
Tình huống duy nhất tôi có thể thấy nó chậm hơn là khi tổng hợp một cảnh nền tĩnh từ nhiều hình ảnh nhỏ và sau đó làm động nội dung trên đầu trang mà không thay đổi nền. Trong trường hợp đó, GPU sẽ phải bố trí lại cả nội dung chuyển động trên đầu và toàn cảnh nền mỗi khung hình. Đây là một trường hợp góc của khóa học. – rpetrich
Một tình huống mà '-drawRect:' là một lợi thế là khi bạn muốn hiệu suất cuộn mượt mà và bạn có PNG có độ trong suốt. Trên phần cứng cũ hơn, GPU không thể xử lý cuộn toàn bộ khung nhìn trong suốt cùng lúc mà không làm rơi khung hình. Một cách xung quanh việc này là thực hiện tất cả các tính năng tổng hợp của bạn trong '-drawRect:', công cụ này chuyển đổi công việc GPU nặng này thành một công việc CPU nặng một lần. Đây là một kịch bản tương đối phổ biến trong các ô xem bảng đồ họa dữ dội, mặc dù nó không phải là vấn đề lớn với iPhone 4 và iPad do các GPU nhanh hơn. –