প্রোগ্রামেটে অ্যাসেট ক্যাটালগ অ্যাক্সেস করুন


97

আমি জানি এটি একটি নতুন বৈশিষ্ট্য এবং এটি সম্ভব নাও হতে পারে তবে আমি আমার সম্পদগুলি সংগঠিত করার জন্য একটি সম্পদ ক্যাটালগ ব্যবহার করতে সক্ষম হতে চাই তবে আমি আমার সমস্ত চিত্র প্রোগ্রামে অ্যাক্সেস করি। এখন আমি কীভাবে আমার ছবিগুলি অ্যাক্সেস করব? আমি কি এখনও তাদের ফাইল নাম দিয়ে এগুলি অ্যাক্সেস করতে পারি:

[UIImage imageNamed:@"my-asset-name.png"];

আপাতদৃষ্টিতে, সম্পদ ক্যাটালগটি এক্সটেনশানটির উল্লেখ করে না, সুতরাং এটি ".png" ছাড়াই অ্যাক্সেস করা আরও দক্ষ হবে?

আমি নিজের জন্য পরীক্ষার পরিবর্তে জিজ্ঞাসা করার কারণটি হ'ল আমার সম্পদ এবং সম্পদ ক্যাটালগ অপসারণ করার পরেও বিল্ড ফোল্ডারটি পরিষ্কার করার পরেও আমি আমার আবেদনে আমার সম্পদ অ্যাক্সেস করতে পারি। আমি যখন এটি প্রয়োগ করি তখন এটি আমাকে সম্পদ ক্যাটালগ পরীক্ষা করতে বাধা দিচ্ছে।

সম্পদ ক্যাটালগটি সন্ধানের পরে, আমি প্রতিটি সম্পত্তির জন্য "বিষয়বস্তু.জসন" পেয়েছি এবং এটি এর মতো বিন্যাসিত হয়েছে:

{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "my-asset@2x.png"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

আমার কীভাবে এটি অ্যাক্সেস করা উচিত তা সম্পর্কে আমি এখনও নিশ্চিত নই, তবে সম্ভবত এটি সাহায্য করবে?

উত্তর:


139

সম্পদ ক্যাটালগ থেকে চিত্রটি অ্যাক্সেস করার জন্য, আপনাকে কেবল কোনও এক্সটেনশন ছাড়াই সম্পদ গোষ্ঠীর নাম অ্যাক্সেস করতে হবে।

সুতরাং, আপনি যদি @"my-button@2x.png"সম্পদ ক্যাটালগের নামের কোনও চিত্র যুক্ত করেন তবে এটি বলা একটি সম্পদ গোষ্ঠী তৈরি করবে my-button

এখন, আপনাকে যা করতে হবে তা হ'ল চিত্রটি অ্যাক্সেস করতে হবে:

// Objective-C
[UIImage imageNamed:@"my-button"];
// Swift
UIImage(named: "my-button")

এছাড়াও, আপনি সম্পদ গোষ্ঠীটির নাম পরিবর্তন করে (চিত্রগুলির নাম পরিবর্তন না করে) বা এর পৃথক উপাদানগুলি পরিবর্তন করে সম্পাদনা করতে পারেন। এটি আপনাকে সহজ নামকরণের কনভেনশনগুলি অনুসরণ করার পাশাপাশি UIScreen scaleকোনও scaleচেক ছাড়াই বিভিন্নগুলির মধ্যে সম্পূর্ণ আলাদা সম্পদ দেখানোর অনুমতি দেবে ।

বিভিন্ন ডিভাইসের আকারের জন্য চিত্রগুলি অন্তর্ভুক্ত করার জন্য আপনাকে এ্যাসেট ক্যাটালগ গ্রুপের বিকল্পগুলিতে "ডিভাইসগুলি" সাব-শিরোনামের অধীনে এটি টগল করতে হতে পারে। এখানে সেই টগলের একটি উদাহরণ রয়েছে (গ্রুপটিতে ডান ক্লিক করে উপলব্ধ)।


আর 4 সংস্করণগুলি, অর্থাৎ 568 সমর্থন রয়েছে। আপনি একটি ইমেজ সেট গুণাবলীর দেখতে পারেন, আপনার কাছ থেকে ডিভাইস ড্রপ ডাউন 'device নির্দিষ্ট' নির্বাচন করতে পারেন, এবং তারপর আপনি একটি R4 ইমেজ, যা 4 "আইওএস 7 চলমান ডিভাইসের উপস্থিত হবে যোগ করতে পারেন
bandejapaisa

প্রোগ্রামিংয়ে কাটা তথ্য অ্যাক্সেস করার কোনও উপায় আছে কি? ইউআইআইজেজ অবজেক্ট থেকে ক্যাপআইনেসেট সম্পত্তি পাওয়ার পাশাপাশি?
ক্লাস

@ ক্লাস আমি নিশ্চিত নই কেন আপনাকে এটির চেয়ে অন্য কোনও উপায়ে কেন পাওয়ার দরকার UIImage। এবং যা আমি দেখেছি, তা নয়, যেমন গ্রুপের প্রতিটি বিভাগের চিত্র সম্পূর্ণ আলাদা চিত্র হতে পারে, সুতরাং কাটা কাটা, কোনও সাধারণ তথ্য থাকবে না। নাকি আমি কিছু মিস করছি?
RileyE

@ রিলেএ আমাকে কাস্টম ওভারলে ভিউয়ের জন্য কিছু গণনা করতে হবে এবং একই পোকামাকড়গুলি ব্যবহার করতে চাই। যখন আমার এককভাবে আমার গণনার জন্য একটি ইউআইআইএমেজ তৈরি করতে হবে তখন আমি প্রয়োজনীয় মানটি অন্য কোথাও (এবং অপ্রয়োজনীয়) সঞ্চয় করতে পছন্দ করব।
ক্লাস

4
সুইফট কোড পরিবর্তন করা বলে মনে হয়UIImage(named: imageName)
HKTonyLee

27

এছাড়াও অ্যাপল সুইফট 3 এর সাথে সম্পদ থেকে চিত্র পাওয়ার জন্য নতুন উপায় যুক্ত করেছে, এটি 'ইমেজ লিটারাল' হিসাবে কল করছে এবং নীচের মত কাজ করবে:

চিত্র লিটারাল


5

সুইফট

আপনি আপনার সম্পদ ক্যাটলগের সাথে কোনও চিত্রের একটি রেফারেন্স পেতে পারেন

UIImage(named: "myImageName")

আপনার এক্সটেনশনটি অন্তর্ভুক্ত করার দরকার নেই।


1

@ রিলেএ 100% সঠিক। যাইহোক, আমার অভিজ্ঞতাগুলি থেকে এটাও লক্ষণীয় যে কখনও কখনও চিত্রটির জন্য সম্পদ ক্যাটালগ রেফারেন্সে সাদা স্থানের স্থান থাকতে পারে। আপনি সম্ভবত লক্ষ্য করবেন না যে স্টোরিবোর্ড / এক্সিবগুলি অটো সম্পূর্ণ হিসাবে এটি যুক্ত করা হবে will তবে আপনি কোড থেকে রেফারেন্স দিলে সমস্যাটি কী তা এত স্পষ্ট নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.