2009-07-31 17 views
30

sto imparando come sviluppare su iPhone, ho comprato un libro intitolato Beginning iPhone 3 di sviluppo Exploring the SDK. Dopo aver morso ho deciso di abbandonare Interface Builder. Continuo a progettare tutte le mie viste in IB, ma scrivo Tutto in codice e uso solo il file pennino per ottenere i frame dei controlli.iPhone Dev - Crea UIButton manualmente

Così ora ho bisogno di fare un UIButton, e la documentazione è diverso dagli altri controlli. Ho provato ad utilizzare initWithFrame:, e c'è questo altro metodo buttonWithType: che presumo sia autoreleased, ma in ogni caso non ho potuto ottenere un pulsante per apparire sullo schermo. Qualcuno potrebbe scrivere per favore un po 'di codice che localmente crea un pulsante con un titolo che posso modificare e quindi posso semplicemente aggiungere alla mia vista subview e rilasciarlo in modo che io possa vedere come è fatto?

risposta

83

mi piacerebbe provare qualcosa di simile:

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    myButton.frame = CGRectMake(20, 20, 200, 44); // position in the parent view and set the size of the button 
    [myButton setTitle:@"Click Me!" forState:UIControlStateNormal]; 
    // add targets and actions 
    [myButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    // add to a view 
    [superView addSubview:myButton]; 

responsabilità: Proprio scrivendo questo qui. Al momento non ho accesso al mio Mac, quindi non posso testarlo.

P.S. Qualche ragione particolare per non usare Interface Builder? Solo curioso.

+1

Supponendo che il selettore 'ButtonClicked:' esiste, questo è perfettamente valido e un buon modo per andare su di esso. +1 – Tim

+7

Non mi piace IB perché la sua come una grande scatola nera e non riesco a vedere che cosa sta succedendo e si complica solo le cose ... L'unica cosa che credo che il suo utile per sta progettando l'interfaccia. Questo myButton è autorelasciato? Funzionerebbe anche se facessi UIButton * myButton = [[UIButton alloc] initWithFrame: ...]; .. ma poi come faccio a impostare il tipo di pulsante di sola lettura .. – mk12

+0

e potrebbe non io myButton.titleLabel.text = @ "Click Me!" invece di setTitle forState? – mk12

Problemi correlati