Merhabalar bu yazımda İOS uygulamalarınızda nesnelerin CoreGraphics alt katmanı olan CALayer‘ı nasıl hızlı bir şekilde UIImage nesnesine render ederiz bunun örneğini vereceğim.
CALayer İOS için çok önemli bir katman bu katman üzerinden animasyon işlemleri yapmak GPU üzerinden normale göre daha hızlı işlem görmekte bu yüzden bu katmanla iş yapmak işinize yarayacaktır.
Bu örneğimde elimizde bulunan bir UILabel nesnesini resim üzerine basmış olacağız. Bu işlemi yapmak için tabiki CoreGraphics sınıflarından yararlanıyoruz.
Aşağıdaki verdiğim örnekte UILabel text’de bulunan yazıyı resmin tam ortasına yerleştirmiş olacağız. Bu işlemi farklı yollardanda yapabiliriz ancak bu örneğimde CALayer katmanı üzerinden işlemi gerçekleştireceğiz.
func generateImageWithText(text: String,bgColor:UIColor,size:CGSize) -> UIImage { UIGraphicsBeginImageContextWithOptions(size, false, 0) let context = UIGraphicsGetCurrentContext() bgColor.setFill() UIRectFill(CGRect(x: 0, y: 0, width: size.width, height: size.height)) let textLabel = UILabel(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height)) textLabel.textAlignment = NSTextAlignment.Center textLabel.textColor = UIColor.whiteColor() textLabel.text = text textLabel.layer.renderInContext(context!) let imageWithText = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return imageWithText }
Yazdığım fonksiyonu inceleyebilirsiniz. Kullanımıda aşağıdaki gibi UIImageView içindeki image ‘ return ederek kullanabilirsiniz.
imgview.image = generateImageWithText("kenanatmaca.com",bgColor: UIColor.blackColor() ,size: CGSize(width: 300, height: 300))
Bu yazı yorumlara kapalı.