खोज…
परिचय
UIButton : UIControl स्पर्श घटनाओं को स्वीकार करता है और टैप किए जाने पर किसी लक्ष्य वस्तु को एक क्रिया संदेश भेजता है। आप एक बटन का शीर्षक, छवि और अन्य उपस्थिति गुण सेट कर सकते हैं। इसके अलावा, आप प्रत्येक बटन स्थिति के लिए एक अलग उपस्थिति निर्दिष्ट कर सकते हैं।
टिप्पणियों
बटन प्रकार
एक बटन का प्रकार इसकी मूल उपस्थिति और व्यवहार को परिभाषित करता है। बटन बनाने के बाद, आप उसका प्रकार नहीं बदल सकते। सबसे अधिक उपयोग किए जाने वाले बटन प्रकार कस्टम और सिस्टम प्रकार हैं, लेकिन उपयुक्त होने पर अन्य प्रकार का उपयोग करते हैं
UIButtonTypeCustom
No button style.
UIButtonTypeSystem
A system style button, such as those shown in navigation bars and toolbars.
UIButtonTypeDetailDisclosure
A detail disclosure button.
UIButtonTypeInfoLight
An information button that has a light background.
UIButtonTypeInfoDark
An information button that has a dark background.
UIButtonTypeContactAdd
A contact add button.
कस्टम बटन बनाते समय- वह बटन कस्टम प्रकार के साथ होता है - बटन का फ्रेम शुरू में (0, 0, 0, 0) पर सेट होता है। अपने इंटरफ़ेस में बटन जोड़ने से पहले, आपको फ़्रेम को अधिक उपयुक्त मूल्य पर अपडेट करना चाहिए।
एक UIButton बनाना
UIButtons को एक फ्रेम में आरंभीकृत किया जा सकता है:
तीव्र
let button = UIButton(frame: CGRect(x: x, y: y, width: width, height: height)
उद्देश्य सी
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)];
एक विशिष्ट प्रकार का UIButton इस तरह बनाया जा सकता है:
तीव्र
let button = UIButton(type: .Custom)
उद्देश्य सी
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
type
कहां एक UIButtonType
:
enum UIButtonType : Int {
case Custom
case System
case DetailDisclosure
case InfoLight
case InfoDark
case ContactAdd
static var RoundedRect: UIButtonType { get }
}
शीर्षक सेट करें
तीव्र
button.setTitle(titleString, forState: controlState)
उद्देश्य सी
[button setTitle:(NSString *) forState:(UIControlState)];
"हैलो, वर्ल्ड!" के लिए डिफ़ॉल्ट शीर्षक सेट करने के लिए
तीव्र
button.setTitle("Hello, World!", forState: .normal)
उद्देश्य सी
[button setTitle:@"Hello, World!" forControlState:UIControlStateNormal];
शीर्षक रंग सेट करें
//Swift
button.setTitleColor(color, forControlState: controlState)
//Objective-C
[button setTitleColor:(nullable UIColor *) forState:(UIControlState)];
शीर्षक रंग को नीले रंग में सेट करने के लिए
//Swift
button.setTitleColor(.blue, for: .normal)
//Objective-C
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]
क्षैतिज रूप से संरेखित करने वाली सामग्री
तीव्र
//Align contents to the left of the frame
button.contentHorizontalAlignment = .left
//Align contents to the right of the frame
button.contentHorizontalAlignment = .right
//Align contents to the center of the frame
button.contentHorizontalAlignment = .center
//Make contents fill the frame
button.contentHorizontalAlignment = .fill
उद्देश्य सी
//Align contents to the left
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
//Align contents to the right
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
//Align contents to the center
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
//Align contents to fill the frame
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
शीर्षक लेबल प्राप्त करना
अंतर्निहित शीर्षक लेबल, यदि कोई मौजूद है, तो इसका उपयोग करके लाया जा सकता है
तीव्र
var label: UILabel? = button.titleLabel
उद्देश्य सी
UILabel *label = button.titleLabel;
उदाहरण के लिए, शीर्षक लेबल का फ़ॉन्ट सेट करने के लिए इसका उपयोग किया जा सकता है
तीव्र
button.titleLabel?.font = UIFont.boldSystemFontOfSize(12)
उद्देश्य सी
button.titleLabel.font = [UIFont boldSystemFontOfSize:12];
एक UIButton को अक्षम करना
एक बटन द्वारा अक्षम किया जा सकता है
तीव्र
myButton.isEnabled = false
उद्देश्य सी:
myButton.enabled = NO;
बटन ग्रे हो जाएगा:
यदि आप नहीं चाहते हैं कि अक्षम होने पर बटन का स्वरूप बदल जाए, तो adjustsImageWhenDisabled
सेट adjustsImageWhenDisabled
false
/ NO
कोड के माध्यम से एक UIButton के लिए एक क्रिया जोड़ना (प्रोग्रामेटिक रूप से)
बटन में विधि जोड़ने के लिए, पहले एक क्रिया विधि बनाएँ:
उद्देश्य सी
-(void)someButtonAction:(id)sender {
// sender is the object that was tapped, in this case its the button.
NSLog(@"Button is tapped");
}
तीव्र
func someButtonAction() {
print("Button is tapped")
}
अब इस कार्य विधि को अपने बटन पर जोड़ने के लिए, आपको निम्नलिखित कोड की पंक्ति लिखनी होगी:
उद्देश्य सी
[yourButtonInstance addTarget:self action:@selector(someButtonAction) forControlEvents:UIControlEventTouchUpInside];
तीव्र
yourButtonInstance.addTarget(self, action: #selector(someButtonAction), forControlEvents: .TouchUpInside)
ENUM
पैरामीटर के लिए, ENUM
UIControlEvents के सभी सदस्य मान्य हैं।
फ़ॉन्ट सेट करना
तीव्र
myButton.titleLabel?.font = UIFont(name: "YourFontName", size: 20)
उद्देश्य सी
myButton.titleLabel.font = [UIFont fontWithName:@"YourFontName" size:20];
एक बटन के लिए एक विधि संलग्न
बटन में विधि जोड़ने के लिए, पहले एक क्रिया विधि बनाएँ:
उद्देश्य सी
-(void) someButtonAction{
NSLog(@"Button is tapped");
}
तीव्र
func someButtonAction() {
print("Button is tapped")
}
अब इस कार्य विधि को अपने बटन पर जोड़ने के लिए, आपको निम्नलिखित कोड की पंक्ति लिखनी होगी:
उद्देश्य सी
[yourButtonInstance addTarget:self action:@selector(someButtonAction) forControlEvents:UIControlEventTouchUpInside];
तीव्र
yourButtonInstance.addTarget(self, action: #selector(someButtonAction), forControlEvents: .touchUpInside)
ENUM
के लिए, ENUM
UIControlEvents के सभी सदस्य मान्य हैं।
UIButton का आकार उसके पाठ और फ़ॉन्ट के आधार पर सख्ती से प्राप्त करें
अपने फ़ॉन्ट के आधार पर एक UIButton के पाठ का सटीक आकार प्राप्त करने के लिए, फ़ंक्शन का उपयोग करें intrinsicContentSize
।
तीव्र
button.intrinsicContentSize.width
उद्देश्य सी
button.intrinsicContentSize.width;
छवि सेट करें
तीव्र
button.setImage(UIImage(named:"test-image"), forState: .normal)
उद्देश्य सी
[self.button setImage:[UIImage imageNamed:@"test-image"] forState:UIControlStateNormal];
मल्टीपल कंट्रोल स्टेट्स
आप कई UIControlStates
लिए एक छवि भी सेट कर सकते हैं, उदाहरण के लिए Selected
और Highlighted
राज्य के लिए एक ही छवि सेट करने के लिए:
तीव्र
button.setImage(UIImage(named:"test-image"), forState:[.selected, .highlighted])
उद्देश्य सी
[self.button setImage:[UIImage imageNamed:@"test-image"] forState:UIControlStateSelected|UIControlStateHighlighted];