Artikel Tagged 'UIButton "

Objective-C: Nachtrag zu den Notifizierungen und Delegierte

Antwort auf die Frage, ILeW mit einem Artikel über das, was der real, Befestigung wie beispielsweise Mitteilungen und Delegierte arbeiten. Mit einem Muster, das wir zuerst sehen, wie der Delegierte Muster:

Delegate

Ein Objekt, auf der Suche nach einem Delegierten

Fortsetzung ...

Apple iPhone: Erstellen Sie eine benutzerdefinierte Schaltfläche mit Umschaltfunktion

non funzionano quando un UIButton è impostato in modalità UIButtonTypeCustom ! Die Zustände UIControlStateSelected oder UIControlStateHighlighted nicht funktionieren, wenn ein UIButton -Modus eingestellt ist UIButtonTypeCustom ! Oder besser gesagt, nicht funktionieren (weil für andere Arten von Button vorbehalten), zum Beispiel zu einer Zwei-Staaten-Schaltfläche zu erstellen: toggle beachten. Wenn wir zwei Bilder (und stato1.png stato2.png) für unsere Button erstellt haben, können wir wie folgt vorgehen:

1
2
3
/ / Die Header-Dateien, dass wir eine globale Variable für usaremo erstellen
/ / Check der Toggle wurden
ToggleFlag BOOL;

Nun erstellen wir unseren Button:

1
2
3
4
5
6
7
8
9
/ / Wir schaffen eine Taste und legen wir es zunächst in den Zustand "stato1.png"
/ / Edit initWithFrame: (CGRect) {} 100,100,50,50 mit dem Standort und
/ / Größe des Bildes hat
; toggleFlag = YES;
[ [ UIButton buttonWithType : UIButtonTypeCustom ] initWithFrame : ( CGRect ) { 100 , 100 , 50 , 50 } ] ; UIButton ToggleButton * = [[UIButton buttonWithType: UIButtonTypeCustom] initWithFrame: (CGRect) {100, 100, 50, 50}];
@ "" forState : UIControlStateNormal ] ; [ToggleButton setTitle: @ "," Forst: UIControlStateNormal];
[ UIImage imageNamed : @ "stato1.png" ] forState : UIControlStateNormal ] ; [ToggleButton SetBackgroundImage: [UIImage imageNamed: @ "stato1.png"] Forst: UIControlStateNormal];
self action : @selector ( onToggle : ) forControlEvents : UIControlEventTouchUpInside ] ; [ToggleButton addTarget: self Aktion: @ selector (onToggle:) forControlEvents: UIControlEventTouchUpInside];
toggleButton ] ; [Self.view addSubview: ToggleButton];

Wenn Sie auf den Button klicken, wird eine Nachricht zu verwaltenden senden onToggle :

1
2
3
4
5
6
7
void ) onToggle : ( id ) sender { - (Void) onToggle: (id) sender {
/ / Hole Zeiger auf UIButton
( UIButton * ) sender; UIButton ButtonClicked * = (UIButton *) sender;
/ / Ausführen Toogle
toggleFlag = toggleFlag!;
[ UIImage imageNamed : ( toggleFlag ) ? @ "stato1.png" : @ "stato2.png" ] forState : UIControlStateNormal ] ; [ButtonClicked SetBackgroundImage: [UIImage imageNamed: (toggleFlag) @ "Stato1.png" @ "stato2.png"] Forst:? UIControlStateNormal];
}

Fortsetzung ...

iPhone SecondApp: Guess der Zahl - Teil 2

Wie bereits erwähnt FirstApp iPhone: Guess der Zahl - Teil 1 sehen wir, wie Sie eine Anwendung für das Apple iPhone ohne Interface Builder zu machen! In der Tat werden wir beseitigen physischen Dateien, die von Interface Builder, Xcode-Assistenten erstellt. Am Ende von diesem Post, dann haben wir eine Anwendung in jeder Hinsicht identisch, wie in der ersten Hälfte erreicht, mit dem Unterschied, dass wir alle unsere visuelle Komponenten, darunter das Hauptfenster, vollständig zu erreichen, um Code.

Die Anwendung bereits, wenn Sie gerade herunterladen möchten, gibt es auf meiner Google-Code-Repository:

Ich möchte darauf hinweisen, sofort als ZIP diesem Beispiel mit einem Gewicht von weniger als das letzte Mal! :)

Wir schaffen das Projekt

Wir beginnen mit der Erstellung unseres Projektes SecondApp (um es von FirstApp zu unterscheiden), obwohl dieses Zeitfenster-basierten Anwendung zu wählen:

newproject

Nun wollen wir löschen alles, was mit Interface Builder. : eliminatelo anche dal file system, quindi selezionate Also Move to Trash . Löschen Sie die Datei MainWindow.xib , in den Ordner Resources : auch löschen aus dem Dateisystem, und wählen Sie dann auch den Papierkorb verschieben. nella casella Main nib file base name : Wählen Sie dann die Datei SecondoApp-info.plist und löschen Sie den Verweis auf die MainWindow nib box Main-base file name:

deleteib

An diesem Punkt haben wir nicht mehr jedem Windows-, zumindest über Interface Builder. , e modifichiamo la funzione main() in questo modo: So öffnen wir die Datei main.m , in Lage Other Sources , und ändern Sie die Funktion main() wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
int argc, char * argv [ ] ) { int main (int argc, char * argv []) {

pool = [ [ NSAutoreleasePool alloc ] init ] ; NSAutoreleasePool * pool = [[ NSAutoreleasePool alloc] init];

/ / Durch das Entfernen der Datei. XIB verpassten wir den Punkt
/ / Delegierter des JPA, dann übergeben Sie es an "Hand"
UIApplicationMain ( argc, argv, nil , @ "SecondAppAppDelegate" ) ; int retVal = UIApplicationMain (argc, argv, nil, @ "SecondAppAppDelegate");

; [Pool release];
Rückkehr retVal;
}

Öffnen SecondAppAppDelegate.me erstellen Sie dann im Hauptfenster in Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void ) applicationDidFinishLaunching : ( UIApplication * ) application { - (Void) applicationDidFinishLaunching: (UIApplication *) Anwendung {

/ / Holen Sie sich die Bildschirmgröße (320, 480)
UIScreen mainScreen ] applicationFrame ] ; CGRect windowRect = [[UIScreen Hauptseite] applicationFrame];
/ / Fenster erzeugen - wie wir in Interface Builder getan haben bye bye
[ [ UIWindow alloc ] initWithFrame : windowRect ] ; MainWindow UIWindow * = [[UIWindow alloc] initWithFrame: windowRect];
/ / Stellen Sie die Hintergrundfarbe des Fensters zu gelb, zu differenzieren
/ / Die bisherige Anwendung FirstApp
[ UIColor yellowColor ] ] ; [MainWindow setBackgroundColor: [UIColor yellowColor]];

mainWindow ] ; [Self setWindow: MainWindow];
; [Window makeKeyAndVisible];

; [MainWindow release];
}

Sie können bereits die Anwendung zu testen, wenn Sie ein gelbes Fenster hast du alles richtig machen!

, necessario solo se si usa Interface Builder. In der Datei SecondAppAppDelegate.h können wir beseitigen IBOutlet nur erforderlich, wenn Sie Interface Builder verwenden. Auch hier hinzufügen, dass unsere globale Variablen, die letzte Zeit, die wir in den Controller eingegeben hatte. Dann ändern Sie die Datei SecondAppAppDelegate.h :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Import <UIKit/UIKit.h>

NSObject <UIApplicationDelegate> { @ Interface SecondAppAppDelegate: NSObject {<UIApplicationDelegate>
UIWindow * window;

UITextField * Zahl;
UIButton * Taste;
numeroACaso int;
}

nonatomic, retain ) UIWindow * window; @ Property (atomare, behalten) UIWindow * window;

void ) controllaNumero; - (Void) getNumber;

@ End

, in quanto non stiamo usando Interface Builder. Wieder haben wir die Definition der Methode zubereitet controllaNumero , wie beim letzten Mal, aber wir haben den Hinweis beseitigt IBAction , weil Sie sich nicht mit Interface Builder.

Wir bilden die Schnittstelle von Code

Es ist Zeit, um Code mit allen Komponenten unserer Schnittstelle zu erstellen. ed inseriamo il seguente codice: Gehen wir zurück zu der Datei SecondAppAppDelegate.m , posizioniamoci vor [mainWindow release] und fügen Sie den folgenden Code ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/ / Erstellen der Titelleiste
[ [ UINavigationBar alloc ] initWithFrame : CGRectMake ( 0.0 , 0.0 , 320.0 , 44.0 ) ] ; UINavigationBar myNavigationBar * = [[UINavigationBar alloc] initWithFrame: CGRectMake (0,0, 0,0, 320,0, 44,0)];
myNavigationBar.barStyle = UIBarStyleDefault;
[ [ UINavigationItem alloc ] initWithTitle : @ "Indovina un numero" ] ; UINavigationItem navigationItem * = [[UINavigationItem alloc] initWithTitle: @ "Guess eine Reihe"];
navigationItem animated : NO ] ; [MyNavigationBar pushNavigationItem: navigationItem animated: NO];
myNavigationBar ] ; [Window addSubview: myNavigationBar];

/ / Erstellen der Etiketten
[ [ UILabel alloc ] initWithFrame : CGRectMake ( 10 , 50 , 300 , 80 ) ] ; UILabel myLabel * = [[UILabel alloc] initWithFrame: CGRectMake (10, 50, 300, 80)];
UIColor clearColor ] ; myLabel.backgroundColor = [UIColor clearColor];
; myLabel.numberOfLines = 2;
"iPhone ha pensato un numero da 1 a 10, prova ad indovinarlo?" ; myLabel.text = @ "Das iPhone hat eine Reihe von 1 bis 10 konzipiert, versuchen zu erraten?"
myLabel ] ; [Window addSubview: myLabel];

/ / Erstellen von Text-Eingabe
UITextField alloc ] initWithFrame : CGRectMake ( 10 , 120 , 300 , 30 ) ] ; number = [[UITextField alloc] initWithFrame: CGRectMake (10, 120, 300, 30)];
numero.borderStyle = UITextBorderStyleRoundedRect;
numero.textAlignment = UITextAlignmentCenter;
numero.keyboardType = UIKeyboardTypeNumberPad;
"Inserisci il numero" ; numero.placeholder = @ "Geben Sie die Nummer";
numero ] ; [Window addSubview: number];

/ / Erstellen der Taste
UIButton buttonWithType : UIButtonTypeRoundedRect ] ; button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
10 , 180 , 300 , 30 ) ; bottone.frame = CGRectMake (10, 180, 300, 30);
@ "Premi qui" forState : UIControlStateNormal ] ; [Button setTitle: @ "Hier klicken" Forst: UIControlStateNormal];
self action : @selector ( controllaNumero ) forControlEvents : UIControlEventTouchUpInside ] ; [AddTarget Button: self Aktion: @ selector (getNumber) forControlEvents: UIControlEventTouchUpInside];
bottone ] ; [Window addSubview: Taste];

; [MyLabel release];
; [NavigationItem release];
; [MyNavigationBar release];

della scorsa volta, subito dopo il [mainWindow release]; inseriamo: Da die " applicationDidFinishLaunching entspricht viewDidLoad wie beim letzten Mal, kurz nach der [mainWindow release]; einzufügen:

1
+ arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%;

Jetzt können wir tun, ist die Methode zu implementieren controllaNumero , die gleich wird (abgesehen von den Prototyp) zu, die verwendet werden letzte Mal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void ) controllaNumero { - (Void) {getNumber
"Premuto bottone di controlla numero" ) ; NSLog (@ "-Taste gedrückt Kontrollnummer");
[ numero.text integerValue ] ; numeroInserito = int [numero.text integerWert];
message; NSString * message;
"Il numero inserito è %d" , numeroInserito ) ; NSLog (@ "Die eingegebene Zahl ist% d", numeroInserito);
numeroInserito <numeroACaso ) { if (numeroInserito <numeroACaso) {
"Troppo basso..." ; message = @ "Too Low ...";
( numeroInserito> numeroACaso ) { } Else if (numeroInserito> numeroACaso) {
"Troppo alto..." ; message = @ "Zu hohe ...";
( numeroInserito == numeroACaso ) { } Else if (numeroInserito numeroACaso ==) {
"Bravo hai indovinato" ; message = @ "Bravo, Sie haben es erraten";
+ arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%;
"Numero pensato %d" , numeroACaso ) ; NSLog (@ "Number% d dachte:" numeroACaso);
}
[ [ UIAlertView alloc ] UIAlertView alertMessaggio * = [[UIAlertView alloc]
"Responso" initWithTitle: @ "Response"
Nachricht: Nachricht
Delegierter: nil
"OK" cancelButtonTitle: @ "OK"
] ; otherButtonTitles: nil];
; [AlertMessaggio show];
; [AlertMessaggio release];
"" ; numero.text @ = "";
}

Wir sind fertig!

Schlussfolgerungen und Überlegungen

, proprio perchè volevo lasciarlo il più semplice e snello possibile e, anche, per dimostrare che non sono elementi sempre necessari. Dieses Beispiel macht nicht den direkten Einsatz eines UIView oder UIViewController , nur weil ich überlasse es so einfach und einheitlich wie möglich wollte und auch, um zu zeigen, dass die Elemente nicht immer notwendig. Allerdings Einfügen von Objekten direkt in das Fenster kann einen Sinn haben in diesem Beispiel und andere sporadische Kontexten. portano comunque benefici in tantissimi altri casi, ein alcuni sono praticamente indispensabili; come avremo modo di vedere in futuro. Die Verwendung von UIView und UIViewController Vorteile bringen in vielen anderen Fällen jedoch sind einige nahezu unverzichtbar Ein, wie wir in die Zukunft sehen.

Fortsetzung ...

iPhone FirstApp: Guess der Zahl - Teil 1

Die erste Quelle, die ich in meine Hände erhob, war in Basic geschrieben und bestand aus ein paar Zeilen Code, für erhellende mich. Es war ein einfaches Spiel, das eine Zufallszahl generiert von 1 bis 10, und durch Tastatureingabe, ob die eingegebene Zahl Maggioni wurde, weniger als oder gleich der Zufallszahl. Trotz seiner rauen Einfachheit bleibt für mich eines der besten Beispiele - einfach, Spaß und praktisch - zu denen, die nichts weiß über die Programmierung, was eigentlich für "Computer-Programm" gemeint zu erklären. Also habe ich es für Apple iPhone vorschlagen entschieden haben, werden vielleicht jemand helfen ...

Fortsetzung ...

Apple iPhone 3.0 SDK: Korrektur eines Fehlers auf UIButton buttonWithType

Wie im Beitrag angegeben Apple iPhone SDK 3.0: Erste Inkompatibilität des Apple SDK 3.0 zeigen unterschiedliche Verhaltensweisen in Bezug auf 2.2.1 Release. Support-Service für Entwickler gab mir die Antwort, und dann die Lösung des Problems. . Die Antwort war, dass die technische Unterstützung [UIButton buttonWithType:] bereits genannt - im Inneren - die initWithFrame . Daraus folgt, dass nach der technischen Unterstützung, schreiben:

Fortsetzung ...

Apple iPhone 3.0 SDK: Zuerst Inkompatibilität

Nach der Installation des 3.0 SDK für Apple iPhone, offenbar noch nicht vollkommen stabil, habe ich sofort gefunden einige Probleme, sowohl bei der Erstellung des Codes ist in der allgemeinen XCode. Die wichtigsten - die ich prompt mit einem "Zuhause" an Apple gemeldet, Entwickler in der Mitte - die Einrichtung von Schaltflächen über den Code. Hier ist ein Auszug des Codes ist nicht kompatibel mit dem SDK 3.0:

1
2
3
4
[ [ UIButton buttonWithType : UIButtonTypeRoundedRect ] initWithFrame : CGRectMake ( 0 , 0 , 100 , 40 ) ] ; UIButton * myButton = [[UIButton buttonWithType: UIButtonTypeRoundedRect] initWithFrame: CGRectMake (0, 0, 100, 40)];
@ "Bottone" forState : UIControlStateNormal ] ; [MyButton setTitle: @ "Button" Forst: UIControlStateNormal];
/ / Andere Einstellungen
myButton ] ; [Self.view addSubview: myButton];

Durch das Ausfüllen dieses Codes mit dem SDK 2.2.1 erhalten Sie ein klassisches Button mit der Beschriftung "Button". Mit dem SDK 3.0, ist die Schaltfläche erstellt, aber das Label verschwindet. la situazione sembra migliorare, nel senso che la label viene resa apparentemente in modo corretto. Verwendung als buttonWithType Typ UIButtonTypeCustom scheint die Situation in dem Sinne, dass das Etikett ist offenbar richtig gemacht zu verbessern. Es ist immer noch seltsam, den plötzlichen Ausfall des Typs UIButtonTypeRoundedRect . Ich warte noch immer auf eine Antwort von Apple ... Ich habe gerade Neuheit; Platz!

Fortsetzung ...

iPhone: die nützlichste Eigenschaft Tag

Alle Objekte, die gewonnen wurden aus <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/cl/UIView">UIView</a> erben die nützlichen Eigenschaften <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW25">tag</a> Diese Eigenschaft ist eine reale Benutzer-Daten (ein "Ort", die der Entwickler für allgemeine Zwecke) des Typs <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/c_ref/NSInteger">NSInteger</a> so, wo wir speichern können nur Zahlen.

Die Anwendungen, auf die sie offensichtlich hängt von den Umständen aber kann, ist es sinnvoll, ein bestimmtes Objekt zu nehmen ein gemeinsames Auftreten zu identifizieren. Angenommen, Sie haben zwei <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIAlertView_Class/UIAlertView/UIAlertView.html">UIAlertView</a> Reaktion auf das gleiche Ereignis:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/ / First Alert
[ [ UIAlertView alloc ] initWithTitle : @ "Primo" message : @ "Primo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "First"-Meldung: @ "First Alert" zu delegieren: self cancelButtonTitle: @ "OK" otherButtonTitles: nil, nil];
; [Alert show];
; [Alert release];

/ / ...

/ / Zweite Warnung
[ [ UIAlertView alloc ] initWithTitle : @ "Secondo" message : @ "Secondo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "Second"-Meldung: @ "Second Alert" zu delegieren: self cancelButtonTitle: @ "OK" otherButtonTitles: nil, nil];
; [Alert show];
; [Alert release];

/ / Event
/ / OK-Taste Cliccandi dieser Funktion wird aufgerufen, Alter werden
void ) alertView : ( UIAlertView * ) alertView clickedButtonAtIndex : ( NSInteger ) buttonIndex { - (Void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) {buttonIndex
/ / Todo
}

Hinweis: Codebeispiele in C + + finden Sie die Anfahrtsbeschreibung zu finden. Dies ist nicht ganz korrekt, denn wie Sie wissen, ist die Sprache Objective-C. Dies ist aufgrund der Tatsache, dass die Plugins, die ich verwenden, um den Quellcode einzusehen nicht unterstützt Objective-C und C + + ist der am besten nähert sich ihm.

Wie zwischen den beiden aufmerksam zu unterscheiden? Gerade mit der Eigenschaft tag. Nach der Erstellung des alert geben Sie einfach:

1
2
3
4
5
6
7
8
9
10
11
12
13
/ / First Alert
[ [ UIAlertView alloc ] initWithTitle : @ "Primo" message : @ "Primo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "First"-Meldung: @ "First Alert" zu delegieren: self cancelButtonTitle: @ "OK" otherButtonTitles: nil, nil];
1 ] ; // imposto il tag di questo Alert ad 1 [Alert EINSTELLUNG: 1] / / die tag für diese Warnung zu 1
; [Alert show];
; [Alert release];

/ / ...

/ / Zweite Warnung
[ [ UIAlertView alloc ] initWithTitle : @ "Secondo" message : @ "Secondo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "Second"-Meldung: @ "Second Alert" zu delegieren: self cancelButtonTitle: @ "OK" otherButtonTitles: nil, nil];
2 ] ; // imposto il tag di questo Alert ad 2 [Alert EINSTELLUNG: 2] / / die tag für diese Warnung zu 2
; [Alert show];
; [Alert release];

Nun ändern Sie die Veranstaltung, um zu verstehen, die Alarmstufe wurde geschlossen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/ / Event
/ / OK-Taste Cliccandi dieser Funktion wird aufgerufen, Alter werden
void ) alertView : ( UIAlertView * ) alertView clickedButtonAtIndex : ( NSInteger ) buttonIndex { - (Void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) {buttonIndex
alertView.tag ) { switch (alertView.tag) {
: Fall 1:
/ / First Alert
break;
: Fall 2:
/ / Nach-Alert
break;
Standard:
break;
}
}

Exakt gleiche Technik kann verwendet werden, wenn wir eine Reihe von haben werden <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html">UIButton</a> run-time. Zum Beispiel:

1
2
3
4
5
6
7
8
9
10
unsigned int i = 0 ; i < 10 ; i ++ ) { for (unsigned int i = 0; i <10; i + +) {
[ [ UIButton buttonWithType : UIButtonTypeCustom ] initWithFrame : CGRectMake ( i * 20 , i * 20 , 20 , 20 ) ] ; UIButton * myButton = [[UIButton buttonWithType: UIButtonTypeCustom] initWithFrame: CGRectMake (i * 20, * 20, 20, 20)];
@ "But" forState : UIControlStateNormal ] ; [MyButton setTitle: @ "Aber", Forst: UIControlStateNormal];
i ] ; // imposto il tag [MyButton EINSTELLUNG: i]; / / die tag

/ / Das gleiche Veranstaltung für alle
self action : @selector ( onTouchUpInside : ) forControlEvents : UIControlEventTouchUpInside ] ; [MyButton addTarget: self Aktion: @ selector (onTouchUpInside:) forControlEvents: UIControlEventTouchUpInside];

mybutton ] ; [Self.view addSubview: myButton];
}

(dove eseguiamo un casting <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/cl/UIView">UIView</a> Im Falle onTouchUpInside vom erholen sender (wo wir führen ein Casting <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/cl/UIView">UIView</a> Eigentum <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW25">tag</a>

1
2
3
4
void ) onTouchUpInside : ( id ) sender { - (Void) onTouchUpInside: (id) sender {
( ( UIView * ) sender ) .tag; button_tag unsigned int = ((UIView *) sender) tags.;
/ / Todo
}

Fortsetzung ...