এক্সকোড 9.2 ব্যবহার করে উপরের সমাধানগুলির কোনওটিই আমি যা খুঁজছিলাম তার জন্য কাজ করেনি।
আমি একটি সমাধান আমাকে সেট দিন করবে খুঁজছেন ছিল .normal
এবং .selected
UIControlState
তাদের জন্য স্টোরিবোর্ড ভিতরে ইমেজ মূল রেন্ডারিং মোড , কিন্তু, সুইফট ফাইল ভিতরে, কোন স্ট্রিং লিটারেল ইমেজ নাম সংক্রান্ত অস্তিত্ব করা উচিত নয়।
মূলত, আপনার কোডের অভ্যন্তরে আপনি আপনার স্টোরিবোর্ডের অভ্যন্তরে যে চিত্রটি রেখেছেন সেটি .normal
রাষ্ট্রের জন্য পাবেন এবং এটিকে .alwaysOriginal
( .selected
রাজ্যের সমান ) হিসাবে পুনরায় রেন্ডার করুন , তারপরে আপনি সেই চিত্রটি সেট করবেন (যা এখন মূল হিসাবে উপস্থাপিত হয়েছে এবং এটি দ্বারা প্রভাবিত হবে না) আভা) প্রাসঙ্গিক রাষ্ট্র (জন্য .normal
এবং .selected
আপনার এর) UIButton
।
এটা এখানে:
// Get your .normal image (you set via your storyboard) and render it as original
let unselectedImage = yourButton.image(for: .normal)?.withRenderingMode(.alwaysOriginal)
// Set your normal image but this time rendered as original
yourButton.setImage(unselectedImage, for: .normal)
// Same for selected state
let selectedImage = yourButton.image(for: .selected)?.withRenderingMode(.alwaysOriginal)
yourButton.setImage(selectedImage, for: .selected)
এইভাবে আপনি নিজের বোতামের চিত্রটি সেট করতে পারবেন এবং যদি চিত্রটির নাম পরিবর্তন হয় তবে এটি আপনার কোডকে প্রভাবিত করবে না।