मैं एक बुनियादी UIButton प्रोग्रामेटिक रूप से कैसे बनाऊं?


547

मैं मूल UIButtonप्रोग्राम कैसे बना सकता हूं ? मेरे विचार नियंत्रक में उदाहरण के लिए, viewDidLoadविधि निष्पादित करते समय , तीन UIButtonएस को गतिशील रूप से बनाया जाएगा और इसका लेआउट या गुण सेट किए जाते हैं।


webindream.com/how-to-add-uibutton-programmatically-in-swift एक अच्छा UIButton जोड़ने के लिए ट्यूटोरियल प्रोग्राम के रूप में है
फरहद रुबेल

स्विफ्ट में UIButton बनाएं, stackoverflow.com/questions/24102191/…
iOS

जवाबों:


1187

यहां एक है:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self 
           action:@selector(aMethod:)
 forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];

धन्यवाद! क्या आप मुझे समझा सकते हैं कि मैथोड क्या है?
डोमलो

5
ButtonWithType: UIButton
Allyn

261
आसान टिप: यदि आप नहीं चाहते कि आपका बटन जैसे ही आप इसे स्पर्श करें, तो UIControlEventTouchDown के बजाय UIControlEventTouchUpInside का उपयोग करें - यह उपयोगकर्ता को उंगली उठाने की प्रतीक्षा करेगा, उन्हें खींचकर रद्द करने का विकल्प देगा (Apple में अनुशंसित) ह्यूमन इंटरफ़ेस दिशानिर्देश)
ऐयरग्रीगिटर

9
मैं ज्यादातर मामलों के लिए UIControlEventTouchUpInside का उपयोग करने की सलाह देता हूं। मैंने कुछ गेम्स और म्यूजिक प्ले करने वाले ऐप्स (क्लीफ़ ट्यून्स और क्लीफ़नोट्स) में UIControlEventTouchDown का इस्तेमाल किया है ताकि टच तुरंत म्यूजिक नोट्स तैयार कर सके।
महबूदज

45
मेरे जैसे लोगों के लिए ध्यान दें जो इससे जूझते थे - @ चयनकर्ता (aMethod :) एक तर्क के साथ एक विधि को संदर्भित करता है। @selector (aMethod) एक विधि को संदर्भित करता है जिसमें कोई तर्क नहीं है। यदि आपके विधि हस्ताक्षर की तरह दिखता है - (शून्य) aMethod; और आप @selector (aMethod :) का उपयोग करते हैं, आपका ऐप क्रैश हो जाएगा।
चाड शुल्त्स

94
- (void)viewDidLoad {
    [super viewDidLoad];
    [self addMyButton];   // Call add button method on view load
}

- (void)addMyButton{    // Method for creating button, with background image and other properties

    UIButton *playButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
    playButton.frame = CGRectMake(110.0, 360.0, 100.0, 30.0);
    [playButton setTitle:@"Play" forState:UIControlStateNormal];
    playButton.backgroundColor = [UIColor clearColor];
    [playButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal ];
    UIImage *buttonImageNormal = [UIImage imageNamed:@"blueButton.png"];
    UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];
    [playButton setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal];
    UIImage *buttonImagePressed = [UIImage imageNamed:@"whiteButton.png"];
    UIImage *strechableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0];
    [playButton setBackgroundImage:strechableButtonImagePressed forState:UIControlStateHighlighted];
    [playButton addTarget:self action:@selector(playAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:playButton];  
}

@ sasayins: मैंने कोड की व्यवस्था की है, आप addDyButton पद्धति को viewDidLoad पर कॉल कर सकते हैं।
Xorsat

1
धन्यवाद ... लेकिन क्यों दृश्य नियंत्रक का उपयोग करें: viewDidLoad? ऐसा लगता है कि यह सामग्री (दृश्य को स्थापित करने / बटन जोड़ने) को दृश्य नियंत्रक के बजाय दृश्य में किया जाना चाहिए? धन्यवाद
Rakka रोष

@rakkarage addMyButton () विधि सामान्य विधि है, आप इसे ईवेंट से उपयोग कर सकते हैं।
Xorsat

1
स्वीकार किए गए से बेहतर उत्तर, क्योंकि यह कोड के लिए संदर्भ दिखाता है।
मॉर्गन वाइल्ड

ऐसा लगता है कि यह देखने में एक अच्छा विचार नहीं है (??) दृश्य में समन्वय के निर्देशन की शुरुआत करने के लिए: stackoverflow.com/questions/17882199/ ... ???
user2054339

86

उद्देश्य सी

UIButton *but= [UIButton buttonWithType:UIButtonTypeRoundedRect];
[but addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
 [but setFrame:CGRectMake(52, 252, 215, 40)];
[but setTitle:@"Login" forState:UIControlStateNormal];
[but setExclusiveTouch:YES];

 // if you like to add backgroundImage else no need
   [but setbackgroundImage:[UIImage imageNamed:@"XXX.png"] forState:UIControlStateNormal];

[self.view addSubview:but];

-(void) buttonClicked:(UIButton*)sender
 {
NSLog(@"you clicked on button %@", sender.tag);
 }

तीव्र

    let myButton = UIButton() // if you want to set the type use like UIButton(type: .RoundedRect) or UIButton(type: .Custom)
    myButton.setTitle("Hai Touch Me", forState: .Normal)
    myButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
    myButton.frame = CGRectMake(15, 50, 300, 500)
    myButton.addTarget(self, action: "pressedAction:", forControlEvents: .TouchUpInside)

    self.view.addSubview( myButton)


func pressedAction(sender: UIButton!) {
   // do your stuff here 
  NSLog("you clicked on button %@", sender.tag)
}

स्विफ्ट 3 और उससे ऊपर

  let myButton = UIButton() // if you want to set the type use like UIButton(type: .RoundedRect) or UIButton(type: .Custom)
    myButton.setTitle("Hi, Click me", for: .normal)
    myButton.setTitleColor(UIColor.blue, for: .normal)
    myButton.frame = CGRect(x: 15, y: 50, width: 300, height: 500)

    myButton.addTarget(self, action: #selector(pressedAction(_:)), for: .touchUpInside)
    self.view.addSubview( myButton)



func pressedAction(_ sender: UIButton) {
   // do your stuff here 
  print("you clicked on button \(sender.tag)")
}

SwiftUI

उदाहरण के लिए आपको SwiftUI डेवलपर पोर्टल से कदम से कदम मिलाना है

import SwiftUI

struct ContentView : View {
    var body: some View {
        VStack {

            Text("Target Color Black")
             Button(action: { 
                 /* handle button action here */ })
            {
         Text("your Button Name")
          .color(.white)
                        .padding(10)
                        .background(Color.blue)
                        .cornerRadius(5)
                        .shadow(radius: 5)
                        .clipShape(RoundedRectangle(cornerRadius: 5))
     }


        }
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif

स्विफ्ट 3: exped declarationmyButton.setTitle ("हाय, क्लिक करें") में त्रुटि देता है
Xcodian Solangi

@XcodianSolangi - myButton.setTitle("Hi, Click")वाक्यविन्यास नहीं है क्या myButton.setTitle("Hi, Click me", for: .normal)मैंने अपने कोड की कोशिश की है मुझे किसी भी मुद्दे का सामना नहीं करना पड़ रहा है
Anbu.Karthik

जैसा कि आपने परिभाषित किया है, मैं इसे लिखता हूं, अब मैंने फ़ंक्शन के अंदर VC और अन्य भागों में निरंतरता को परिभाषित किया है
Xcodian Solangi

30

अपने नियंत्रक के दृश्य में प्रोग्राम को जोड़ने के लिए, निम्नलिखित का उपयोग करें:

-(void)viewDidLoad
{
   UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
   btn.frame = CGRectMake(0, 0, 100, 50);
   [btn setTitle:@"Hello, world!" forState:UIControlStateNormal];
   [self.view addSubview:btn];
}

इनमें से तीन जोड़ने के लिए, कुल्ला और दोहराएं।


ऐसा लगता है कि यह देखने में एक अच्छा विचार नहीं है (??) दृश्य में समन्वय के निर्देशन की शुरुआत करने के लिए: stackoverflow.com/questions/17882199/ ... ???
user2054339

3
सही है, 2009 के मुकाबले अब बेहतर दृष्टिकोण हैं।
जेसन

25

यहाँ आप गतिशील रूप से एक UIButton बना सकते हैं:

//For button image
UIImage *closebtnimg = [UIImage imageNamed:@"close_btn.png"];
//Custom type button
btnclose = [[UIButton buttonWithType:UIButtonTypeCustom]retain];
//Set frame of button means position
btnclose.frame = CGRectMake(103, 257, 94, 32);
//Button with 0 border so it's shape like image shape
[btnclose.layer setBorderWidth:0];
//Set title of button
[btnclose setTitle:@"CLOSE" forState:UIControlStateNormal];
[btnclose addTarget:self action:@selector(methodname:) forControlEvents:UIControlEventTouchUpInside];
//Font size of title
btnclose.titleLabel.font = [UIFont boldSystemFontOfSize:14];
//Set image of button
[btnclose setBackgroundImage:closebtnimg forState:UIControlStateNormal];

25

चलो, यह 2014 है! कोड ब्लॉक मूल्यांकन असाइनमेंट का उपयोग अभी तक क्यों नहीं किया जा रहा है, क्योंकि रुझान यह दिखाता है कि यह भविष्य है!

UIButton* button = ({
    //initialize button with frame
    UIButton* button = [[UIButton alloc] initWithFrame:({
        CGRect frame = CGRectMake(10.0, 10.0, 200.0, 75.0);
        frame;
    })];
    //set button background color
    [button setBackgroundColor:({
        UIColor* color = [UIColor colorWithRed:1.0 green:1.0 blue:0.0 alpha:1.0];
        color;
    })];
    //set button title for state
    [button setTitle:({
        NSString* string = [NSString stringWithFormat:@"title words"];
        string;
    }) forState:({
        UIControlState state = UIControlStateNormal;
        state;
    })];
    //set selector
    [button addTarget:self action:({
        SEL select = @selector(method:);
        select;
    }) forControlEvents:({
        UIControlEvents event = UIControlEventTouchUpInside;
        event;
    })];
    //return button
    button;
});
[self.view addSubview:button];

रुको!

रुको!

या सटीक परिणाम इस तरह से पूरे किए जा सकते हैं:

UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(10.0, 10.0, 200.0, 75.0)];
[button setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:0.0 alpha:1.0]];
[button setTitle:@"title words" forState:UIControlStateNormal];
[button addTarget:self action:@selector(method:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];


8
शीर्ष पर थोड़ा, लेकिन यह एक दिलचस्प नई विशेषता है।
पॉल सोल्ट

वह बिंदु है, कोड ब्लॉक मूल्यांकन और प्रश्न को दिखाने के लिए। यह गुस्सा हो रहा है -1 ...
जॉन रिसेल्वेटो

1
यदि आपके पास कोड ब्लॉक मूल्यांकन असाइनमेंट क्यों महत्वपूर्ण है,
फहीम पारकर

@ फहीमपारकर, सवाल यह है कि एक बटन कैसे बनाया जाए और सीबीई कैसे और क्यों महत्वपूर्ण है।
जॉन रिसेलवेटो

3
मैं संदर्भ के साथ टिप्पणी करता हूं कि यह 2014 है!
फहीम पारकर

20

'action:@selector(aMethod:)' इस तरह लिखें विधि:

- (void)aMethod:(UIButton*)button
   {
         NSLog(@"Button  clicked.");
  }

इससे मेरा काम बनता है। धन्यवाद। एस।


14

उद्देश्य सी

// Create the Button with RoundedRect type
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
// instend of "Click Me" you can write your own message/Label
[mybutton setTitle:@"Click Me" forState:UIControlStateNormal];
// create the Rectangle Frame with specified size
mybutton.frame = CGRectMake(10, 10, 300, 140); // x,y,width,height    [self.view addSubview:mybutton];// add button to your view.

तीव्र

let button   = UIButton(type: UIButtonType.System) as UIButton
button.frame = CGRectMake(100, 100, 100, 50)
button.backgroundColor = UIColor.greenColor()
button.setTitle("Test Button", forState: UIControlState.Normal)
self.view.addSubview(button)

9

बटन बनाने के लिए इस कोड को आज़माएं और इसे अलग-अलग निर्देशांक के साथ 2 बार के लिए दोहराएं और बटन दबाए जाने पर विधि (myButtonClick) कहा जाता है

UIButton *editButton = [UIButton buttonWithType: UIButtonTypeCustom];
editButton.frame = CGRectMake(0, 0, width, height);
[editButton setBackgroundImage: editButtonImage forState: UIControlStateNormal];
[myButton addTarget:self action:@selector(myButtonClick:)    forControlEvents:UIControlEventTouchUpInside]; 
editButton.adjustsImageWhenHighlighted = YES;
editButton.titleLabel.text = @"Edit";
editButton.titleLabel.textColor = [UIColor whiteColor];
editButton.titleLabel.textAlignment = UITextAlignmentCenter;
editButton.titleLabel.font = [UIFont fontWithName: @"Helvetica" size: 14];
[self.view addSubview: editButton];

-(void) myButtonClick:(NSString *)myString{

   NSLog(@"you clicked on button %@", myString);
}

MyString किसके लिए सेट है?
डग नल

यह अतिरिक्त जानकारी के लिए एक पैरामीटर के रूप में पारित करने के लिए स्ट्रिंग है, आप उस विधि का उपयोग इस तरह भी कर सकते हैं - (शून्य) myButtonClick {NSLog (@ "आपने बटन पर क्लिक किया"); } लेकिन सुनिश्चित करें कि कॉल करते समय विधि को हटा दें: बस इस तरह का उपयोग करें [myButton addTarget: self क्रिया: @selector (myButtonClick) forControlEvents: UIControlEventTarUpInside];
ashokdy

केवल एक बटन बनाने के बजाय एकाधिक सेटिंग्स सेट करने के तरीके को दिखाने के लिए +1।
मैट वैगनर

7

इस कोड को देखें:

स्विफ्ट 4.2

let frameimg = CGRect(x: 15, y: 46, width: 55, height: 70)
let btnTest = UIButton(type: .roundedRect)
btnTest.frame = frameimg
btnTest.tag = 11
btnTest.setTitle("Test Button", for: .normal)
btnTest.addTarget(self, action: #selector(self.buttonAction(sender:)), for: .touchUpInside)
btnTest.titleLabel?.font = UIFont.boldSystemFont(ofSize: 12.0)
btnTest.titleLabel?.lineBreakMode = .byWordWrapping
btnTest.titleLabel?.numberOfLines = 2
btnTest.titleLabel?.textAlignment = .center
btnTest.setTitleColor(UIColor.gray, for: .normal)
btnTest.setTitleColor(UIColor.blue, for: .selected)
btnTest.showsTouchWhenHighlighted = true
view.addSubview(btnTest)

उद्देश्य सी

CGRect frameimg = CGRectMake(15, 46, 55,70);
UIButton  *SelectionButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
SelectionButton.frame=frameimg;
SelectionButton.tag=i;
[SelectionButton setTitle:[SelectionArray objectAtIndex:0] forState:UIControlStateNormal];
[SelectionButton addTarget:self action:@selector(BtnSelected:)
                  forControlEvents:UIControlEventTouchUpInside];
[SelectionButton.titleLabel setFont:[UIFont boldSystemFontOfSize:12.0]];
SelectionButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
SelectionButton.titleLabel.numberOfLines = 2;
SelectionButton.titleLabel.textAlignment = NSTextAlignmentCenter;
[SelectionButton setTitleColor:[UIColor grayColor] forState:(UIControlStateNormal)];
[SelectionButton setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
[SelectionButton setShowsTouchWhenHighlighted:YES];
[self.view addSubview:SelectionButton];

मुझे उम्मीद है कि यह कोड आपके लिए काम करेगा।


6

यदि आप चाहें तो आप रचनाकार का उदाहरण केवल एक लूप के भीतर रख सकते हैं और एक सरणी से गतिशील रूप से नाम जोड़ सकते हैं।


हाँ, मैं महबूद की कोशिश की, और एक ही समय में, मैं पाशन की कोशिश की। धन्यवाद
डोमलो

4
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
           action:@selector(aMethod:)
 forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(10.0, 100.0, 300.0, 20.0);
[self.view addSubview:button];

4
-(UIButton *)addButton:(NSString *)title :(CGRect)frame : (SEL)selector :(UIImage *)image :(int)tag{

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = frame;
[btn addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
[btn setTitle:title forState:UIControlStateNormal];
[btn setImage:image forState:UIControlStateNormal];
btn.backgroundColor = [UIColor clearColor];
btn.tag = tag;

return btn;

}

और आप इसे दृश्य में जोड़ सकते हैं:

[self.view addSubview:[self addButton:nil :self.view.frame :@selector(btnAction:) :[UIImage imageNamed:@"img.png"] :1]];

3
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
       action:@selector(aMethod:)
 forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];

3

यह तीन बटन बनाने के लिए एक उदाहरण है। बस उनके स्थान को स्थानांतरित करें।

UIImage *buttonOff = [UIImage imageNamed:@"crysBallNorm.png"];
UIImage *buttonOn = [UIImage imageNamed:@"crysBallHigh.png"];

UIButton *predictButton = [UIButton alloc];
predictButton = [UIButton buttonWithType:UIButtonTypeCustom];
predictButton.frame = CGRectMake(180.0, 510.0, 120.0, 30.0);
[predictButton setBackgroundImage:buttonOff forState:UIControlStateNormal];
[predictButton setBackgroundImage:buttonOn forState:UIControlStateHighlighted];
[predictButton setTitle:@"Predict" forState:UIControlStateNormal];
[predictButton setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
[predictButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:predictButton];

3

आप इस कोड द्वारा बटन बना सकते हैं।

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
 [btn addTarget:self action:@selector(btnAction) forControlEvents:UIControlEventTouchDragInside];
 [btn setTitle:@"click button" forState:UIControlStateNormal];
  btn.frame = CGRectMake(50, 100, 80, 40);
  [self.view addSubview:btn];

यहाँ बटन कार्रवाई विधि है

 -(void)btnAction
 {
   NSLog(@"button clicked");
 }

2

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

let btnObject : UIButton  = UIButton() 
btnObject.frame = CGRect(x: 8, y: 89, width: 70, height: 22)

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)

2

UIButton को प्रोग्रामेटिक रूप से बनाने के लिए हम ऑब्जेक्टिव c और स्विफ्ट दोनों में बना सकते हैं

स्विफ्ट 3

let buttonSwift   = UIButton(type: UIButtonType.system) as UIButton
                      //OR 
let buttonSwift   = UIButton(type: UIButtonType.Custom) as UIButton
//Set Frame for Button
buttonSwift.frame = CGRect(x: 100, y: 100, width: 200, height: 100)
//Set title for button
buttonSwift.setTitle("ClickMe", for: .normal)
//If you want to set color for button title
buttonSwift.setTitleColor(UIColor.white, for: .normal)
//If you want to set Background color for button
buttonSwift.backgroundColor = UIColor.black
//If you want to set tag for button
buttonSwift.tag = 0
//If you want to add or set image for button
let image = UIImage(named: "YourImageName") as UIImage?
buttonSwift.setImage(image, for: .normal)
//If you want to add or set Background image for button
buttonSwift.setBackgroundImage(image, for: .normal)
//Add action for button
buttonSwift.addTarget(self, action: #selector(actionPressMe), for:.touchUpInside)
//Add button as SubView to Super View
self.view.addSubview(buttonSwift)

UIButton एक्शन विधि

func actionPressMe(sender: UIButton!) 
{
    NSLog("Clicked button tag is %@", sender.tag)
               OR
    print("Clicked button tag is \(sender.tag)")

    //Then do whatever you want to do here

    ........  
}

उद्देश्य सी

UIButton *buttonObjectiveC = [UIButton buttonWithType:UIButtonTypeCustom];
           OR
UIButton *buttonObjectiveC = [UIButton buttonWithType:UIButtonTypeSystem];
buttonObjectiveC.frame = CGRectMake(200, 100, 200, 100);
//Set title for button
[buttonObjectiveC setTitle:@"ClickMe" forState:UIControlStateNormal];
//If you want to set color for button title
[buttonObjectiveC setTitleColor:[UIColor  whiteColor] forState: UIControlStateNormal];
//If you want to set Background color for button
[buttonObjectiveC setBackgroundColor:[UIColor blackColor]];
//If you want to set tag for button
buttonSwift.tag = 0;
//If you want to add or set image for button
UIImage *image = [UIImage imageNamed:@"YourImageName"];
[buttonObjectiveC setImage:image forState:UIControlStateNormal];
//If you want to add or set Background image for button
[buttonObjectiveC setBackgroundImage:image forState:UIControlStateNormal];
//Add action for button
[buttonObjectiveC addTarget:self action:@selector(actionPressMe:)forControlEvents:UIControlEventTouchUpInside];
//Add button as SubView to Super View
[self.view addSubview:buttonObjectiveC];

UIButton एक्शन विधि

- (void)actionPressMe:(UIButton *)sender 
{
    NSLog(@"Clicked button tag is %@",sender.tag);
    //Then do whatever you want to do here
    ..........
}

आउटपुट स्क्रीनशॉट है

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


1
-(void)addStuffToView
{
    UIButton *aButton = [[UIButton alloc] initWithFrame:CGRectMake(20, 20, 20, 20)]; //(x, y, width, height of button on screen
    [aButton setTitle:@"Button" forState:UIControlStateNormal];//puts the text on the button
    aButton.titleLabel.font = somefont;//sets the font if one is already stated
    aButton.titleLabel.font = [UIFont fontWithName:@"Arial-MT" size:12];//sets the font type and size
    [aButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];//see back method below
    [aButton setBackgroundImage:[UIImage imageNamed:@"someImage.png"] forState:UIControlStateNormal];//sets the image of the button
    [self.view addSubview:back];
}

-(void)back
{
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle.....]
}

-(void)viewDidLoad
{
    [super viewDidLoad];
    [self addStuffToView];//adds all items built in this method to the view
}

1

स्विफ्ट 2.2 के लिए (नए "चयनकर्ता" घोषणा के साथ)।

let btn = UIButton(type: UIButtonType.System) as UIButton
btn.frame = CGRectMake(0, 0, 100, 20) // set any frame you want
btn.setTitle("MyAction", forState: UIControlState.Normal)
btn.addTarget(self, action: #selector(MyClass.myAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btn)


func myAction(sender:UIButton!){
  // Some action 
}

1

आप इसे अपने ViewDidLoadतरीके से लागू कर सकते हैं :

continuebtn = [[UIButton alloc]initWithFrame:CGRectMake(10, 100, view1.frame.size.width-20, 40)];
    [continuebtn setBackgroundColor:[UIColor grayColor]];
    [continuebtn setTitle:@"Continue" forState:UIControlStateNormal];
    continuebtn.layer.cornerRadius = 10;
    continuebtn.layer.borderWidth =1.0;
    continuebtn.layer.borderColor = [UIColor blackColor].CGColor;
    [continuebtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [continuebtn addTarget:self action:@selector(continuetonext) forControlEvents:UIControlEventTouchUpInside];
    [view1 addSubview:continuebtn];

कहाँ continuetonextहै:

-(void)continuetonext
{
    GeneratePasswordVC *u = [[GeneratePasswordVC alloc]init];
    [self.navigationController pushViewController:u animated:YES];
}

1

स्विफ्ट 3 के अनुसार, सिंटैक्स में कई बदलाव किए गए हैं।

यहां बताया गया है कि आप स्विफ्ट 3 के रूप में एक मूल बटन कैसे बनाएंगे:

    let button = UIButton(type: UIButtonType.system) as UIButton
    button.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
    button.backgroundColor = UIColor.green
    button.setTitle("Example Button", for: UIControlState.normal)
    self.view.addSubview(button)

यहां स्विफ्ट के पिछले संस्करणों के बाद से किए गए परिवर्तन हैं:

let button = UIButton(type: UIButtonType.System) as UIButton

// system no longer capitalised

button.frame = CGRectMake(100, 100, 100, 50)

// CGRectMake has been removed as of Swift 3

button.backgroundColor = UIColor.greenColor()

// greenColor replaced with green

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

// normal is no longer capitalised

self.view.addSubview(button)

0

कोशिश करो....

UIButton *finalPriceBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
finalPriceBtn.frame=CGRectMake(260, 25, 45, 15);
[finalPriceBtn addTarget:self action:@selector(goBtnClk:) forControlEvents:UIControlEventTouchUpInside];
finalPriceBtn.titleLabel.font=[UIFont systemFontOfSize:12];
[finalPriceBtn setTitle:[NSString stringWithFormat:@"$%.2f",tempVal] forState:UIControlStateNormal];
finalPriceBtn.titleLabel.textColor = [UIColor colorWithRed: 2.0f/255.0f green: 155.0f/255.0f blue: 213.0f/255.0f  alpha:1];
finalPriceBtn.titleLabel.textAlignment=UITextAlignmentLeft;
[imageView addSubview:finalPriceBtn];

आशा है कि मैंने मदद की


0
UIButton *custombutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[custombutton addTarget:self
                 action:@selector(aMethod:)
       forControlEvents:UIControlEventTouchUpInside];
[custombutton setTitle:@"Click" forState:UIControlStateNormal];
custombutton.frame = CGRectMake(80.0, 110.0, 160.0, 40.0);
custombutton.titleLabel.textColor = [UIColor colorWithRed: 2.0f/255.0f green: 155.0f/255.0f blue: 213.0f/255.0f  alpha:1];
 [custombutton setImage:[UIImage imageNamed:@"hh.png"] forState:UIControlStateNormal];
 [view addSubview:custombutton];

0

इसे इस्तेमाल करे:

पहले इसे अपने .h फ़ाइल में viewcontroller के लिखें

UIButton *btn;

अब इसे अपने .m फाइल में viewcontrollers viewDidLoad लिखें।

btn=[[UIButton alloc]initWithFrame:CGRectMake(50, 20, 30, 30)];
[btn setBackgroundColor:[UIColor orangeColor]];
[btn setTitle: @"My Button" forState:UIControlStateNormal];
[btn setTitleColor: [UIColor blueVolor] forState:UIControlStateNormal];
[btn.layer setBorderWidth:1.0f];
[btn.layer setBorderColor:[UIColor BlueVolor].CGColor];
//adding action programatically
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];

अपने व्यू कंट्रोलर की .m फ़ाइल में इसे बाहर का दृश्य विधि विधि लिखें

- (IBAction)btnClicked:(id)sender
{
  //Write a code you want to execute on buttons click event
}

0

के लिए स्विफ्ट 3 (यहां तक कि छोटे कोड)

let button = UIButton(type: UIButtonType.custom)
button.frame = CGRect(x: 0, y: 0, width: 200.0, height: 40.0)
button.addTarget(nil, action: #selector(tapButton(_:)), for: UIControlEvents.touchUpInside)
button.tintColor = UIColor.white
button.backgroundColor = UIColor.red
button.setBackgroundImage(UIImage(named: "ImageName"), for: UIControlState.normal)
button.setTitle("MyTitle", for: UIControlState.normal)
button.isEnabled = true

func tapButton(sender: UIButton) {

}

0

Swift3 संस्करण होना चाहिए

let myButton:UIButton = {
            let myButton = UIButton() // if you want to set the type use like UIButton(type: .RoundedRect) or UIButton(type: .Custom)
            myButton.setTitle("Hai Touch Me", for: .normal)
            myButton.setTitleColor(UIColor.blue, for: .normal)
            myButton.frame = CGRect(x: 20, y: 20, width: 100, height: 40)

            myButton.addTarget(self, action: #selector(ViewController.pressedAction(_:)), for: .touchUpInside)
            self.view.addSubview(myButton)

            return myButton

        }()

0
UIButton *buttonName = [UIButton
buttonWithType:UIButtonTypeRoundedRect];
[buttonName addTarget:self 
    action:@selector(aMethod:)forControlEvents:UIControlEventTouchDown];
[buttonName setTitle:@"Show View" forState:UIControlStateNormal];
.frame = CGRectMake(80.0, 210.0, 160.0, 40.0); [view
addSubview:buttonName];

0

में स्विफ्ट 5 और Xcode 10.2

असल में हमारे पास दो तरह के बटन होते हैं।

1) सिस्टम प्रकार बटन

2) कस्टम प्रकार बटन (कस्टम प्रकार बटन में हम बटन के लिए पृष्ठभूमि छवि सेट कर सकते हैं)

और इन दो प्रकार के बटन में कुछ नियंत्रण अवस्थाएँ होती हैं https://developer.apple.com/documentation/uikit/uicontrol/state

महत्वपूर्ण राज्य हैं

१) सामान्य अवस्था

2) चयनित राज्य

3) हाइलाइटेड अवस्था

4) विकलांग राज्य आदि ...

//For system type button
let button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 250, width: 100, height: 50)
//  button.backgroundColor = .blue
button.setTitle("Button", for: .normal)
button.setTitleColor(.white, for: .normal)
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 13.0)
button.titleLabel?.textAlignment = .center//Text alighment center
button.titleLabel?.numberOfLines = 0//To display multiple lines in UIButton
button.titleLabel?.lineBreakMode = .byWordWrapping//By word wrapping
button.tag = 1//To assign tag value
button.btnProperties()//Call UIButton properties from extension function
button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside)
self.view.addSubview(button)

//For custom type button (add image to your button)
let button2 = UIButton(type: .custom)
button2.frame = CGRect(x: 100, y: 400, width: 100, height: 50)
//        button2.backgroundColor = .blue
button2.setImage(UIImage.init(named: "img.png"), for: .normal)
button2.tag = 2
button2.btnProperties()//Call UIButton properties from extension function
button2.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside)
self.view.addSubview(button2)

@objc func buttonClicked(sender:UIButton) {
    print("Button \(sender.tag) clicked")
}

//You can add UIButton properties using extension
extension UIButton {
    func btnProperties() {
        layer.cornerRadius = 10//Set button corner radious
        clipsToBounds = true
        backgroundColor = .blue//Set background colour
        //titleLabel?.textAlignment = .center//add properties like this
    }
}

-1
UIButton *btnname = [UIButton buttonWithType:UIButtonTypeRoundedRect];

[btnname setTitle:@"Click Me" forState:UIControlStateNormal];

btnname.frame = CGRectMake(10, 10, 100, 140);

[self.view addSubview:btnname];
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.