UIButton এর পাঠ্যক্রম পরিবর্তন করা প্রোগ্রামিয়ালি সুইফ্ট


222

এখানে সাধারণ প্রশ্ন। আমার কাছে একটি ইউআইবাটন, মুদ্রা-নির্বাচনকারী রয়েছে এবং আমি প্রোগ্রামক্রমে পাঠ্যটি পরিবর্তন করতে চাই। আমার যা আছে তা এখানে:

currencySelector.text = "foobar"

এক্সকোড আমাকে "প্রত্যাশিত ঘোষণা" ত্রুটি দেয়। আমি কী ভুল করছি এবং আমি কীভাবে বোতামটির পাঠ্য পরিবর্তন করতে পারি?

উত্তর:


595

সুইফ্ট 3, 4, 5 এ:

button.setTitle("Button Title", for: .normal)

অন্যথায়:

button.setTitle("Button Title", forState: UIControlState.Normal)

এছাড়াও একটি @IBOutletজন্য ঘোষণা করতে হবে button


32
আপনি বাদ পারেন UIControlState। যেমনforState: .Normal
ফেনারল

11
সুইফট 3 এখন .normalনিম্ন কেসটি নথিভুক্ত করেছে
ম্যাথু

6
সুইফট 3 এ পরিবর্তন forStateকরুনfor
ম্যাথিউ পি। জোন্স

1
Swift3: self.btnBuy.setTitle ("কিনুন", এর জন্য: UIControlState.normal)
থিরু

5
দ্রুতগতি 4 এছাড়াও button.setTitle("Button Title",for: .normal)কাজ !, ধন্যবাদ
Rakshitha Muranga রডরিগো

74

নতুন যারা সুইফট এবং আইওএস প্রোগ্রামিংয়ে তাদের জন্য কেবল একটি স্পষ্টতা । কোডের লাইনের নীচে:

button.setTitle("myTitle", forState: UIControlState.Normal)

শুধুমাত্র প্রযোজ্য IBOutlets, না IBActions

সুতরাং, আপনার অ্যাপ্লিকেশন একটি ফাংশন হিসাবে একটি বাটন ব্যবহার করছে যদি কিছু কোড চালানো, সঙ্গীত বাজানো বলুন এবং আপনার কাছ থেকে খেতাব পরিবর্তন করতে চান Playকরতে Pauseএকটি টগল পরিবর্তনশীল উপর ভিত্তি করে, এছাড়াও আপনি একটি তৈরি করতে হবে IBOutletযে বাটন জন্য।

আপনি যদি কোনওটির button.setTitleবিরুদ্ধে ব্যবহার করার চেষ্টা করেন তবে আপনি IBActionএকটি ত্রুটি পাবেন। এটি একবার স্পষ্ট হয়ে গেলে আপনি এটি জানেন তবে নুবদের (আমরা সকলেই ছিলাম) এটি একটি সহায়ক পরামর্শ t


1
হ্যাঁ, আপনার উত্তর না পাওয়া পর্যন্ত আমি ঠিক এটি গুগল করতে চলেছি। ধন্যবাদ! +1
এভারনুব

1
এটি আইওএসের একটি প্যাটার্ন যা আবিষ্কার করতে আমাকে কিছুটা সময় নিয়েছিল। ইউআই আইটেমগুলির বৈশিষ্ট্য রয়েছে যা আইবিআউটলেট তৈরি না করা থাকলে আপনার অ্যাক্সেস নেই। যদি আপনি কোনও ইউআই এর কোনও বৈশিষ্ট্য পরিবর্তন করার চেষ্টা করছেন এবং এটি অ্যাক্সেস করতে না পারছেন তবে নিশ্চিত হয়ে নিন যে আপনার আইবিএક્શન যা কিছু কোড চলছে এবং আইবিআউটলেট যা বৈশিষ্ট্যগুলিতে অ্যাক্সেস সরবরাহ করে both
বেনড্রিক্স

8
এই উত্তরটি কোনও মানে করে না। senderকর্মের বোতাম থাকবে। আপনি নিজের ইচ্ছামত যে কোনও কিছু প্রয়োগ করতে পারেন sender। এটি করার জন্য আপনার কোনও আউটলেট দরকার নেই।
rmaddy

2
বেন্ডিক্স উত্তর বা তার মন্তব্য সঠিক নয়। তারা স্পষ্টত ভুল।
ভাইকিংগুন্ডো

প্রশ্নটি ইন্টারফেস নির্মাতাকে এত ভুল হিসাবে ধরে নেওয়া যায় না যে বিষয়টি কেস হিসাবে ধরে নেওয়া উচিত।
এডওয়ার্ড

13

সুইফট 5:

    let controlStates: Array<UIControl.State> = [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved]
    for controlState in controlStates {
        button.setTitle(NSLocalizedString("Title", comment: ""), for: controlState)
    }

1
আমাকে ইউআইসিএন্ট্রোল.স্টেট ব্যবহার করতে হয়েছিল। এটি বলেছে যে
ইউআইসিএন্ট্রোলস্টেটকে অবহেলা

9

সুইফট 3:

বোতামের শিরোনাম সেট করুন:

//for normal state:
my_btn.setTitle("Button Title", for: .normal)

// For highlighted state:
my_btn.setTitle("Button Title2", for: .highlighted)


6

যখন শিরোনামটি পরিবর্তন করা হয় তখন কিছুটা আলাদা is

আমি কেবল একটি সমস্যার মধ্যে দৌড়েছি: আপনার যদি একটি অ্যাট্রিবিউটেড শিরোনাম সহ একটি ইউআইবাটন থাকে তবে আপনাকে ব্যবহার করতে হবে:

my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)

হিসাবে, অ্যাপল সেটিটল ডক অনুসারে :

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

আমার একটি শিরোনাম শিরোনাম ছিল এবং আমি এটিতে টাইটেল সেট করার চেষ্টা করেছি, কোনও প্রভাব ছাড়াই ...


3

সুইফট 3

আপনি যখন @ আইবিএটি করবেন:

@IBAction func btnAction(_ sender: UIButton) {
  sender.setTitle("string goes here", for: .normal)
}

এটি প্রেরকে UIButton (যে কোনওটির পরিবর্তে) হিসাবে সেট করে তাই এটি btnAction কে UIButton হিসাবে লক্ষ্য করে


2

উপরে 4.2 এবং উপরে

বোতামের আইবিউটলেট ব্যবহার করে

btnOutlet.setTitle("New Title", for: .normal)

বোতামের আইবিএક્શન ব্যবহার করে

@IBAction func btnAction(_ sender: UIButton) {
  sender.setTitle("New Title", for: .normal)
}

0

সুইফট 3

let button: UIButton = UIButton()
button.frame = CGRect.init(x: view.frame.width/2, y: view.frame.height/2, width: 100, height: 100)
button.setTitle(Title Button, for: .normal)

0

সুইচ - 04 ব্যবহার করে এক্সকোডে একটি বোতামের জন্য একটি শিরোনাম নির্ধারণ করতে: প্রথমে নীচের মতো প্যারামিটার শিরোনাম এবং ইউআইসিন্ট্রোলার স্টেট সহ সেটটাইটল নামে একটি পদ্ধতি তৈরি করুন;

func setTitle(_ title : String?, for state : UIControl.State)   {

}

এবং আপনার বোতামের ক্রিয়া পদ্ধতিতে এই পদ্ধতিটিকে স্মরণ করুন;

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