কম্পিউটার

কিভাবে আমি সুইফট ব্যবহার করে iOS ডিভাইসে URL দ্বারা একটি ছবি লোড করব?


সুইফট ব্যবহার করে iOS-এ একটি ছবি লোড করতে আমরা সাধারণ ডেটা টাস্ক সেশন ব্যবহার করব। ছবিটিকে ব্যাকগ্রাউন্ডে লোড করতে হবে কারণ এটি যেকোনো আকারের হতে পারে এবং আমরা চাই না যে এটি আমাদের মূল দৃশ্যের ক্রিয়াকলাপ বন্ধ করুক।

আসুন একটি উদাহরণের সাহায্যে এটি দেখি। একটি খালি প্রকল্প তৈরি করুন এবং একটি খালি চিত্র দৃশ্য যোগ করুন৷

এর আউটলেট তৈরি করুন এবং তারপরে আমরা একটি URL থেকে চিত্র পেতে কোডটি লিখব। এই মুহুর্তে আমাদের অ্যাপ্লিকেশনটি এইভাবে দেখায়৷

কিভাবে আমি সুইফট ব্যবহার করে iOS ডিভাইসে 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)
         }
      }
   }
}

এখন, আমাদের ভিউডিডলোডে (বা আপনার পছন্দের অন্য কোন জায়গায়) নিম্নলিখিত কোড যোগ করুন।

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!)
}

যখন আমরা আমাদের ডিভাইসে এই কোডটি চালাই, তখন আমরা নিম্নলিখিত ফলাফল পাই৷

কিভাবে আমি সুইফট ব্যবহার করে iOS ডিভাইসে URL দ্বারা একটি ছবি লোড করব?


  1. কিভাবে সুইফট ব্যবহার করে iOS 10 এ ফোন কল করবেন?

  2. পিকাসো ব্যবহার করে অ্যান্ড্রয়েডে URL দ্বারা একটি ImageView কিভাবে লোড করবেন?

  3. কিভাবে একটি ইমেজ লোড করবেন এবং কেরাস ব্যবহার করে ইমেজ দেখাবেন?

  4. আইটিউনস ব্যবহার করে কীভাবে আপনার iOS ডিভাইসের ব্যাকআপ নেওয়া যায়