iOS-এ Swift ব্যবহার করে ইমেজ লোড করতে আমরা সিম্পল ডেটা টাস্ক সেশন ব্যবহার করব। ইমেজটিকে ব্যাকগ্রাউন্ডে লোড করতে হবে কারণ এর সাইজ যেকোনো হতে পারে এবং আমরা চাই না আমাদের মেইন ভিউয়ের অপারেশন বন্ধ হয়।
উদাহরণের সাহায্যে দেখি। একটি খালি প্রজেক্ট তৈরি করুন এবং একটি খালি Image View যোগ করুন।
তার আউটলেট তৈরি করুন এবং তারপর URL থেকে ইমেজ পাওয়ার কোড লিখব। এখানে আমাদের অ্যাপ্লিকেশন ফিলহাল নিচের মতো দেখাচ্ছে।

এখন URL থেকে ইমেজ পাওয়ার কোড যোগ করুন।
func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
}
func downloadImage(from url: URL) {
getData(from: url) {
data, response, error in
guard let data = data, error == nil else {
return
}
DispatchQueue.main.async() {
self.image = UIImage(data: data)
}
}
}
এই কোড রান করলে URL থেকে ইমেজ ডাউনলোড হবে, আমরা ইমেজ অবজেক্ট তৈরি করে আমাদের imgView-কে নতুন অবজেক্ট দিয়ে ইনিশিয়ালাইজ করতে পারি।
আরো ভালোভাবে এক্সটেনশন বানিয়ে ব্যবহার করি।
extension UIImageView {
func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
}
func downloadImage(from url: URL) {
getData(from: url) {
data, response, error in
guard let data = data, error == nil else {
return
}
DispatchQueue.main.async() {
self.image = UIImage(data: data)
}
}
}
}
এখন viewDidLoad (যেকোনো জায়গায় আপনি পছন্দ করুন) নিচের কোড যোগ করুন।
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://static.independent.co.uk/s3fs-public/thumbnails/image/2017/09/12/11/naturo-monkey-selfie.jpg?w968h681")
self.imgView.downloadImage(from: url!)
}
এই কোড ডিভাইসে রান করলে নিচের ফলাফল मिलবে।
