UIButton पाठ बदलना


102

इसलिए मैं एक UIButton पर पाठ को अपडेट करने की कोशिश कर रहा हूं जब मैं इसे क्लिक करता हूं। मैं पाठ को बदलने के लिए निम्न पंक्ति का उपयोग कर रहा हूं:

calibrationButton.titleLabel.text = @"Calibration";

मैंने सत्यापित किया है कि पाठ बदल रहा है, लेकिन जब मैं ऐप चलाता हूं और बटन पर क्लिक करता हूं, तो यह एक दूसरे विभाजन के लिए "कैलिब्रेशन" में बदल जाता है और फिर अपने डिफ़ॉल्ट मान पर वापस चला जाता है। कोई विचार क्यों ऐसा हो रहा है? क्या रिफ्रेश फ़ंक्शन के कुछ प्रकार मुझे कॉल करने की आवश्यकता है?


जवाबों:


248

अपने साक्षात्कारों को पूरा करते समय, एक UIButton अपने शीर्षक मानों का उपयोग करके अपने टाइटललैब के पाठ मान को सेट करेगा, ताकि आप चार राज्यों (सामान्य, हाइलाइटेड, चयनित, अक्षम) के लिए चार अलग-अलग तार सेट कर सकें।

इस सुविधा के कारण, टाइटललैब के टेक्स्ट को सीधे सेट करना जारी नहीं रहेगा, और जब यह अपने सबवेज़ को छोड़ देगा तो बटन द्वारा रीसेट हो जाएगा।

एक बटन की स्थिति के लिए शीर्षक पाठ को बदलने के लिए आपको यही करना होगा।

[calibrationButton setTitle:@"Calibration" forState:UIControlStateNormal];

4
तो क्या बटन। titleLabel.text = @ "कुछ पाठ" तब करना चाहिए?
बोरिस गफुरोव

4
@BorisGafurov यदि आप टाइप करते हैं button.titleLabel, तो आप देखते हैं कि शीर्षकलेबल केवल-पढ़ने के लिए संपत्ति है, और इसलिए केवल पढ़ने के लिए संपत्ति के किसी भी गुण पढ़े जाते हैं। उन्हें संपादित करने के लिए डॉट-नोटेशन का उपयोग करना काम नहीं करेगा, और इसलिए आपको उन्हें संपादित करने के लिए स्पष्ट तरीकों की आवश्यकता है। यह मेरे लिए कम से कम समझ में आता है।
erdekhayser

1
मुझे लगता है कि मुझे इस बारे में पता
चलने

आपके उत्तर के लिए धन्यवाद।
दिनेशर्जनी

3
@erdekhayser वास्तव में, केवल पढ़ने के लिए गुण कर सकते हैं / पढ़ा है लिखने गुण। मैं एक कार्य विधि में पूर्णांक को पास करने के लिए टाइटलबेल के टैग का उपयोग करता हूं। इसके अलावा Apple के डॉक्स लिंक को देखें Although this property is read-only, its own properties are read/write. Use these properties primarily to configure the text of the button. For example:
हारून

35

बटन पाठ सेट करने के लिए निम्नलिखित विधि का उपयोग करें:

[calibrationButton setTitle: @"Calibration" forState: UIControlStateNormal];

देखें UIButtonअधिक जानकारी के लिए वर्ग संदर्भ ... http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

या स्विफ्ट 3 में:

calibrationButton.setTitle("Calibration", for: .normal)

6

प्रोग्रामेटिक रूप से आप नीचे दिए गए जैसे बटन शीर्षक सेट कर सकते हैं:

[myButton setTitle:@"buttonTitle" forState:UIControlStateNormal];

आप स्टोरीबोर्ड से बटन शीर्षक संपत्ति भी सेट कर सकते हैं।


2

बहुत बड़ी बात नहीं है, और संभवतः स्पष्ट है, लेकिन बटन के लिए कई राज्य उपलब्ध हैं। यदि आप 'गलत' प्रदान करते हैं, तो आप पाठ को वांछित रूप से नहीं देखेंगे।

मैंने देखा कि मेरा बटन मेरे द्वारा जोड़े गए पाठ को नहीं दिखा रहा था, यहाँ दिखाए गए तरीकों का उपयोग करके। यह सुनिश्चित करने के लिए इस लिंक की जाँच करें कि आप UIControlState प्रदान कर रहे हैं जिसे आप चाहते हैं।

UIControlStateHighlighted और UIControlStateSelected में क्या अंतर है?


1

स्विफ्ट 3.0 के लिए

let button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
button.setTitle("set here", for: .normal)
button.addTarget(self, action: #selector(TableViewController.actionButtonTocuh), for: .touchUpInside)
button.titleLabel?.textColor  = #colorLiteral(red: 0.1019607857, green: 0.2784313858, blue: 0.400000006, alpha: 1)
view.addSubview(button)

1

स्विफ्ट 2.0 के लिए:

let btnObject : UIButton  = UIButton() 
btnObject.frame = CGRect(x: 8, y: 89, width: 70, height: 22)
btnObject.setTitle("Button Title", forState: UIControlState.Normal)
btnObject.titleLabel?.font = UIFont(name: "Helvetica Neue", size: 13)
btnObject.titleLabel?.textColor = UIColor.whiteColor()
btnObject.backgroundColor = UIColor(red: 189/255, green: 176/255, blue: 0/255, alpha: 1)
btnObject.titleLabel?.textAlignment = NSTextAlignment.Center
btnObject.addTarget(self, action: "btnbtnObjectClick:", forControlEvents: UIControlEvents.TouchUpInside)
subView.addSubview(btnObject)

1

यदि आप सभी राज्यों के लिए शीर्षक सेट नहीं करना चाहते हैं, तो इसे सामान्य स्थिति के लिए सेट करें क्योंकि असंगत राज्यों के लिए शीर्षक सामान्य राज्य के शीर्षक के लिए डिफ़ॉल्ट होगा।

btn.setTitle("Some text", for:.normal)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.