Merhabalar bu yazımda UIView üzerine UIImage çizme işlemini nasıl yapacağınızı ve doğru resim boyutunu nasıl elde edebileceğinizi sizlerle paylaşacağım.
iOS ile çizim işlemlerinde Core Graphics çok önemli bir konuma sahiptir. Bizde bu işlem için bu alt yapıdan faydalanacağız. Ancak bu işlem için en önemli durum UIImage nesnesinin boyutu ile çizilecek UIView nesnesinin boyutunu oranlamak ve doğru frame değerini elde etmek en önemli kısım. Doğru frame elde edilmediği zaman bozuk, boyutsal hata olan bir resim çizilmiş olur.
Lafı fazla uzatmadan kod kısmına geçelim.
extension UIImage { func frame(in imageView: UIView) -> CGRect { let imageRatio = (self.size.width / self.size.height) let viewRatio = imageView.frame.size.width / imageView.frame.size.height if imageRatio < viewRatio { let scale = imageView.frame.size.height / self.size.height let width = scale * self.size.width let topLeftX = (imageView.frame.size.width - width) * 0.5 return CGRect(x: topLeftX, y: 0, width: width, height: imageView.frame.size.height) } else { let scale = imageView.frame.size.width / self.size.width let height = scale * self.size.height let topLeftY = (imageView.frame.size.height - height) * 0.5 return CGRect(x: 0.0, y: topLeftY, width: imageView.frame.size.width, height: height) } } }
Image ve eklenecek view ‘ e göre boyutunu oranlayıp bize sunan değerli fonksiyonumuzu yukarda görebilirsiniz.
Daha sonra çizim işlemi oldukça konforlu bir hal alıyor.
override func draw(_ rect: CGRect) { myImage.draw(in: myImage.frame(in: self)) }
İlk Yorumu Siz Yapın