আইওএস 7-তে নীল বোতামে ইউআইবাটন ইমেজ ফলাফল সেট করা


163

আইওএস 6 এসডিকে আমি একটি বোতামের অভ্যন্তরে কোনও চিত্র প্রদর্শিত করতে কোডের নিম্নলিখিত লাইনগুলি লিখেছিলাম:

NSURL *thumbURL2 = [NSURL URLWithString:@"http://example.com/thumbs/2.jpg"];
NSData *thumbData2 = [NSData dataWithContentsOfURL:thumbURL2];
UIImage *thumb2 = [UIImage imageWithData:thumbData2];
[btn2 setImage:thumb2 forState:UIControlStateNormal];
[self.view addSubview:btn2];

তবে এখন এক্সকোড 5 এবং আইওএস 7 এর সাথে এটি কার্যকর হয় না। বোতামটিতে চিত্রটি নেই। বোতামটি নীল রঙে পূর্ণ।


আপনি বোতামটি ক্লিক করলে চিত্রটি প্রদর্শিত হবে?
JustAnotherCoder

উত্তর:


378

আইওএস 7-তে ইউআইবাটন টাইপসিস্টেম এনএস_ইনুম_আভিএইএইਬਲআইএলআইআইএস (_0 টি), // স্ট্যান্ডার্ড সিস্টেম বোতাম নামে একটি নতুন বোতামের ধরণ রয়েছে

আপনার .xib ফাইলটি পরীক্ষা করুন এবং কাস্টমটিতে বোতামের ধরনটি পরিবর্তন করুন ছবিটি দেখুন

প্রোগ্রামগতভাবে এটি করতে, এই লাইনটি এতে যুক্ত করুন viewDidLoad:

[UIButton buttonWithType:UIButtonTypeSystem]; 

2
[ইউআইবাটন বোতাম উইথটাইপ: ইউআইবাটনটাইপসিসিমেট];
নির্মম

57
নোট করুন যে এই দ্রবণটি সিস্টেমের রঙের রঙ সরিয়ে দেয়, তবে হাইলাইট করা এবং স্বাভাবিক অবস্থার মধ্যে কঠোর রূপান্তর ঘটায়। আপনি যদি সিস্টেমের আচরণ, অ্যানিমেশন ইত্যাদি সংরক্ষণের সন্ধান করছেন তবে রঙিন রঙ থেকে মুক্তি পেতে চান, চেষ্টা করুন [myUIButton setImage: [[UIImage imageNamed: @"myButtonImage"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal] forState: UIControlStateNormal];( আইবিতে "সিস্টেম" এ সুনির্দিষ্ট বোতামটির সাহায্যে)।
JWK

ধন্যবাদ এটি খুব সহায়ক ছিল। আমাদের ক্ষেত্রে, বোতামটি এমনকি স্বচ্ছ পিএনজির আকারে ক্লিপিং করছিল এবং তারপরে রঙিন ছিল।
g_pass

গিজম তারা লুকিয়েছিল যে তারা ভাল করে না ?!
মৌরি মার্কোভিটস

এটি কাজ করে :) আপনার কোডটিতে আপনার অন্য কিছু সমস্যা হতে পারে। আপনি যদি এক্সকোড at.১ এর দিকে লক্ষ্য করেন তবে আপনি উপলভ্য বিকল্পগুলি পরিষ্কারভাবে দেখতে পারবেন ..
চামিরা ফার্নান্দো

53

দেখে মনে হচ্ছে আইওএস 7 বোতামের রঙিন রঙ প্রদর্শনের জন্য আলফা মাস্ক হিসাবে প্রদত্ত চিত্রটি ব্যবহার করছে। UIButtonTypeCustomআমার জন্য কৌতুকটি করতে বোতামের ধরণটি পরিবর্তন করা (ধন্যবাদ ব্যবহারকারী 716216!) চিত্রটি ব্যাকগ্রাউন্ড হিসাবে সেট করা আপনার যদি ইতিমধ্যে আমার মতো ব্যাকগ্রাউন্ড চিত্র থাকে তবে কাজ করে না।


ধন্যবাদ! মূল ব্যবহারকারী এটি উত্তর হিসাবে গ্রহণ করতে ভুলে গেছেন।
জিগজাত

এটি আমার পক্ষে কাজ করছে, তবে সিস্টেমে পরিবর্তন আমার ক্ষেত্রে কাজ করে না, আপনার অবদানের জন্য ধন্যবাদ
chings228

29

সুইফট 3, 4, 5:

let image = UIImage(named: "my-image")
myButton.setImage(image.withRenderingMode(.alwaysOriginal), for: .normal)

24

ছবিটি থাকার খুব ভাল সুযোগ রয়েছে এবং আপনি এটি দেখতে পাচ্ছেন না। বোতামের ধরণটি পরিবর্তন করার চেষ্টা করুন UIButtonTypeCustom। যদি এটি কাজ না করে তবে বোতামটির পটভূমির রঙ এতে সেট করুন[UIColor clearColor];


9

ইস্যুটি হল টিন্টকালার Col ডিফল্টরূপে, আইওএস প্রতিটি বোতামের উপরে নীল রঙের ছোঁয়া রঙ ছুড়ে দেয়। আপনি এটি প্রায় 3 উপায়ে পেতে পারেন।

  1. রঙের রঙ পরিবর্তন করুন। [button setTintColor:[UIColor blackColor]]; এটি আপনার চিত্রটিকে যেভাবে চান না তাতে এটি রঙিন হতে পারে।

  2. অন্যান্য প্রস্তাবিত হিসাবে, পটভূমি চিত্র সেট করুন। [button setBackgroundImage:[UIImage...]];

  3. আপনার বোতামে একটি ইউআইআইমেজভিউ যুক্ত করুন।

UIImageView * img = [[UIImageView alloc] initWithImage:[UIImage...]];

[button addSubView:img];


9

দ্রুত জন্য:

    let aButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton

6

আমারো একই ইস্যু ছিল. আমার স্টোরিবোর্ডে আমার কোনও ছবি ছাড়াই একটি বোতাম ছিল।

আমি তখন কোডটিতে ছবিটি বরাদ্দ করব।

আইওএস 7 এসেছিল এবং আমি প্রচুর নীল চিত্র পেয়েছি।

রেজোলিউশনটি সহজ ছিল তবে বিভ্রান্তিকর। যদি আমি স্টোরিবোর্ডে কোনও চিত্র নিযুক্ত করি এবং তারপরে রান ইমেজটি পরিবর্তন করা হয় তবে তা ঠিক কাজ করে।

আপনি সর্বদা স্টোরিবোর্ডে একটি শুরুর চিত্রটি নির্দিষ্ট করতে হবে এমনকি আপনি এটি ব্যবহার না করে থাকলেও।


3

এটি আমার পক্ষে কাজ করেছে

[myButton1 setBackgroundImage:[UIImage imageNamed:@"phones.png"] forState:UIControlStateNormal];

দ্রষ্টব্য: এটি করার আগে সামনের চিত্রটি সরান।


কিভাবে পটভূমি চিত্র অপসারণ !!
simbesi.com

3

পুরানো থ্রেড, তবে আমি চিম ইন করতে চেয়েছিলাম কারণ আমার সবেমাত্র একই সমস্যা ছিল। আপনি যখন সেটব্যাকগ্রাউন্ড ইমেজ কল করবেন তখন সমস্যাটি কেবল আপনি সেট ইমেজ কল করছেন।


1

প্রদত্ত সমাধানগুলির মধ্যে আমার পক্ষে কাজ করা হয়নি। আপনি যদি স্টোরিবোর্ডে কোনও প্রাথমিক চিত্র সেট না করেন তবে আপনি এখনও ব্যবহার করে বোতামটির চিত্র পরিবর্তন করতে পারেন setBackgroundImage

আপনার উদাহরণস্বরূপ, শুধুমাত্র একটি সামান্য পরিবর্তন প্রয়োজন needed

NSURL *thumbURL2 = [NSURL URLWithString:@"http://example.com/thumbs/2.jpg"];
NSData *thumbData2 = [NSData dataWithContentsOfURL:thumbURL2];
UIImage *thumb2 = [UIImage imageWithData:thumbData2];
[btn2 setBackgroundImage:thumb2 forState:UIControlStateNormal];
[self.view addSubview:btn2];

1

এই সমস্যাটিকে এক্সকোডের বোতামের নীল রঙের সমস্যা বলা হয়। যখন আমরা কোড অনুসারে বোতামটি তৈরি করি তখন বোতামটি নীল রঙের রঙের ডিফল্ট রঙ দেখায় his এটি আপনার ঘরের রঙের সাথে কালো বা সাদা রঙের রঙের রঙ নির্ধারণ করে বাইটকে সমাধান করা যেতে পারে। কোডটি হ'ল:

UIImage *closebtnimg = [UIImage imageNamed:@"icon_uncheck.png"];
 UIImage *closebtnimg1 = [UIImage imageNamed:@"icon_checked.png"];

Custombutton *button = [Custombutton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:CGRectMake(52, 66, 25, 24)];
[button setBackgroundImage:closebtnimg forState:UIControlStateNormal];
[button setBackgroundImage:closebtnimg1 forState:UIControlStateSelected];
[button setTintColor:[UIColor whiteColor]];
[cell.contentView addSubview:button];
[button addTarget:self action:@selector(changeImage:)  forControlEvents:UIControlEventTouchUpInside];

এটি বেশ কার্যকর @ শানে
রুদ্র

1

এক্সকোড 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)

এইভাবে আপনি নিজের বোতামের চিত্রটি সেট করতে পারবেন এবং যদি চিত্রটির নাম পরিবর্তন হয় তবে এটি আপনার কোডকে প্রভাবিত করবে না।


1

আইওএস 13-এ, ইউআইবাটনের প্রকারকে কাস্টম হিসাবে রাখার জন্য কেবল টিন্টের সম্পত্তি হোয়াইটে সেট করুন


0

চারটি রাজ্যের (ডিফল্ট, হাইলাইটলাইটেড, নির্বাচিত, অক্ষম) ক্লিয়ার কালার হিসাবে রঙিন রঙ তৈরি করা আমার পক্ষে কাজ করেছিল worked


-1

ইন সুইফট 4 , আপনার আরম্ভ UIButtonএবং নিম্নরূপ uyour ইমেজ তথ্য বরাদ্দ:

let myButton = UIButton(type: .cutsom)
myButton.setImage(UIImage(data:myImageData), for: .normal)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.