2013-06-19 54 views
9

Tôi có thể xác định tọa độ của sự kiện chạm trên UIImageView. Sau đó tôi cần chuyển đổi các tọa độ này thành các tọa độ của hình ảnh đang được hiển thị - điều này sẽ khác nhau, vì hình ảnh của tôi lớn hơn nhiều so với UIImageView và tôi đang mở rộng hình ảnh bằng AspectFit.Chuyển đổi tọa độ UIImageView Chạm vào Tọa độ UIImage

Cách tốt nhất để xác định tọa độ hình ảnh của sự kiện chạm được xem tọa độ xem của UIImageView là gì?

Trả lời

12

Điều gì đó như thế này sẽ giúp bạn tiếp tục.

CGPoint imageViewPoint = [touch locationInView:imageView]; 

float percentX = imageViewPoint.x/imageView.frame.size.width; 
float percentY = imageViewPoint.y/imageView.frame.size.height; 

CGPoint imagePoint = CGPointMake(image.size.width * percentX, image.size.height * percentY); 

Giả sử UIImageView được gọi imageView các UITouch được gọi touchUIImage được gọi image.

+0

Hoàn hảo! Chính xác những gì tôi đang tìm kiếm! –

+1

điều gì xảy ra nếu UIImage không hoàn toàn phù hợp với UIImageView và có một số khoảng trống giữa UIImage. Làm thế nào tôi có thể có được đúng điểm trên UIImage? – Boyi

+0

@Boyi bạn sẽ phải tính đến điều đó trong tính toán của mình. Tuy nhiên, tôi không biết làm thế nào mà có thể. Bạn sẽ phải xem xét chế độ nội dung và kích thước của hình ảnh để tìm ra nơi hình ảnh ở bên trong chế độ xem hình ảnh. Chỉ dễ dàng hơn để chế độ xem hình ảnh vừa với tỷ lệ khung hình chính xác bằng cách sử dụng bố cục tự động. – Fogmeister

Các vấn đề liên quan