Я пытаюсь реализовать функцию, которая рисует изображение в определенной точке UIImageView.
1.) Таким образом, пользователь делает фотографию 2.) Фотография отображается пользователю в UIImageView в«Соотношение сторон» 3.) Пользователь нажимает на UIImageView, чтобы поместить изображение в точку касания 4.) Отображается комбинированное изображение
код:
extension UIImage {
func image(byDrawingImage image: UIImage, inRect rect: CGRect) -> UIImage! {
UIGraphicsBeginImageContextWithOptions(size, false, 0)
draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
image.draw(in: rect)
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}}
source
@IBAction func imageTapped(_ sender: UITapGestureRecognizer) {
let pointTapped = sender.location(in: imageDIsplay)
imageDIsplay.image = originalImage?.image(byDrawingImage: #imageLiteral(resourceName: "checkmark.png"), inRect: CGRect(x: originalImage!.size.width / imageDIsplay.frame.width * pointTapped.x, y: originalImage!.size.height / imageDIsplay.frame.height * pointTapped.y, width: 100, height: 100))
}
моя проблема: «Изображение галочки» никогда не находится в точной точке, где я нажал.
Я много пробовалвместо originalImage!.size.width / imageDIsplay.frame.width
, чтобы получить лучшее соотношение, включая CGRect AVMakeRectWithAspectRatioInsideRect(CGSize aspectRatio, CGRect boundingRect);
.Но ничего не работает правильно.
Что мне не хватает?
СПАСИБО!Сара