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:

Ein Objekt, auf der Suche nach einem Delegierten
Fortsetzung ...
Bewegen Sie den Doppel-Tap auf dem Simulator
Der Simulator iPhones / iPad Xcode können Sie die Doppel-tippen Sie auf die Alt-Taste gedrückt zu simulieren. Dies ist nützlich, um die Funktion von Pinch, dass zu vergrößern oder zu blättern fernhalten Inhalt in die Ansicht mit Objekten oder simulieren UIWebView . Nun, einige von euch bemerkt, dass die Simulation der "zwei Finger" geht in symmetrischer Weise immer von der Mitte des Bildschirms. So verschieben Sie diese "Mitte" ist auch nur bei gedrückter SHIFT-Taste.
Fortsetzung ...
potremmo aver necessità di personalizzare la grafica dei titoli delle sezioni, come California o New York dell'esempio qui sotto. Wenn wir einen Einsatz UITableView Stil Grouped wir brauchen, um das Layout der Abschnittsüberschriften, wie Kalifornien oder New York das Beispiel unten anpassen kann.

Dazu nutzen Sie bitte den folgenden Code, womit es in der Delegierte, also in die Klasse, die das Protokoll reagiert UITableViewDelegate :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| / / Gibt anzeigen meiner Gewohnheit, in diesem Fall ein Objekt / / Typ UILabel UIView * ) tableView : ( UITableView * ) tableView - (UIView *) tableView: (UITableView *) tableView NSInteger ) section { viewForHeaderInSection: (NSInteger) section {
[ [ [ UILabel alloc ] initWithFrame : CGRectZero ] autorelease ] ; UILabel * label = [[[UILabel alloc] initWithFrame: CGRectZero] autorelease]; UIFont boldSystemFontOfSize : 20 ] ; label.font = [UIFont boldSystemFontOfSize: 20]; label.textAlignment = UITextAlignmentCenter; UIColor blackColor ] ; label.shadowColor = [UIColor blackColor]; 1 , 1 ) ; label.shadowOffset CGSizeMake = (1, 1); "Sezione" ; // Sostituire con un array come al solito Label.Text @ = "Section", / / mit einem Array as usual Ersetzen UIColor whiteColor ] ; label.textColor = [UIColor whiteColor]; UIColor clearColor ] ; label.backgroundColor = [UIColor clearColor]; ; label.opaque = NO;
Rückholaufkleber; } / / Wir müssen auch diese Meldung nicht anderweitig Arbeit CGFloat ) tableView : ( UITableView * ) tableView - (CGFloat) tableView: (UITableView *) tableView NSInteger ) section { heightForHeaderInSection: (NSInteger) section { ; Rückkehr 44; } |
Es ist auch wichtig, um auch heightForHeaderInSection , wird nicht funktionieren.
Hinweise von Interesse
o UIImageView , ho utilizzato per inizializzare il frame CGRectZero che corrisponde a CGRectMake(0,0,0,0) . In der Gestaltung unserer UILabel , die auch vielleicht wollen ein komplexes Objekt wie ein UIView oder UIImageView , habe ich die initialize frame CGRectZero entsprechend CGRectMake(0,0,0,0) .
Fortsetzung ...
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 ...
o CGPoint , ad esempio. Die Syntax NSLog(@"%@", ... ); funktioniert und wird verwendet, um Informationen über Objekte zu erhalten, aber nicht auf C-Datentypen wie struct Arbeit CGRect oder CGPoint , zum Beispiel. o NSStringFromCGPoint : Um die Vorteile zu nehmen NSLog(@"%@", ... ); auch auf C-Stil Strukturen können auf Konvertierungsfunktionen wie verlassen NSStringFromCGRect() oder NSStringFromCGPoint :
1 2 3 4 5
| CGRect ) { 10 , 20 , 30 , 40 } ; CGRect mioRect = (CGRect) {10, 20, 30, 40}; CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64}; / / "Info rettangolo: %@" , NSStringFromCGRect ( mioRect ) ) ; NSLog (@ "Info Rechteck:% @", NSStringFromCGRect (mioRect)); "Info point: %@" , NSStringFromCGPoint ( mioPoint ) ) ; NSLog (@ "Info Point:% @", NSStringFromCGPoint (mioPoint)); |
Insbesondere ist es möglich, dieses Verfahren schreibt der kleine nützliche Makros wie zu verbessern:
1
| # Define NSLogRect (rect) NSLog (@ "% s (% 0.0f,% 0.0f)% 0.0f% 0.0fx", # rect, rect.origin.x, rect.origin.y, rect.size.width , rect.size.height) |
Oder:
1 2 3 4
| # Define NSLogCGPoint (Punkt) NSLog (@ "% s (% 0.0f,% 0.0f)" # point.x Punkt Point.y)
CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64}; ; NSLogCGPoint (mioPoint); |
Das wird als Ausgabe zu geben:
1
| 32 , 64 ) mioPoint: (32, 64) |
Fortsetzung ...
CGRectMake() ist eine Funktion (eigentlich ein Inline # define) verwendet eine Menge vor allem, wenn Sie Grafik-Objekte aus dem Code oder Benutzeroberfläche zu erstellen. o UIImageView . CGRectMake() restituisce una struct (struttura di tipo) CGRect : Seine Verwendung ist daher oft die Initialisierung Komponenten verbunden UIKit , sondern auch auf einfache UIView oder UIImageView . CGRectMake() gibt ein struct (Struktur-Typ) CGRect :
1 2 3 4 5
| struct {CGRect CGPoint Ursprungs; CGSize Größe; }; typedef struct CGRect CGRect; |
: Die wiederum aus zwei verschiedenen struct zusammen CGPoint und CGSize :
1 2 3 4 5 6 7 8 9 10 11 12 13
| struct {CGPoint CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint;
/ * Größen. * /
struct {CGSize CGFloat Breite; CGFloat Höhe; }; typedef struct CGSize CGSize; |
. Das wiederum, wieder enthalten Typen CGFloat oder Typ float . Wenn wir analysieren den Code von CGRectMake () sind:
1 2 3 4 5 6 7 8
| CG_INLINE CGRect CGRectMake (CGFloat x, y CGFloat, CGFloat Breite, Höhe CGFloat) { CGRect rect; y; rect.origin.x = x, y = rect.origin.y; height; rect.size.width = width, height = rect.size.height; Rückkehr rect; } |
Daraus folgt, dass dieses Stück Code:
1 2 3 4
| [ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect]; 12 , 409 , 100 , 40 ) ; gbutton.frame = CGRectMake (12, 409, 100, 40); @ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Presse" Forst: UIControlStateNormal]; gbutton ] ; [MainWindow addSubview: gbutton]; |
Es könnte zu Recht geschrieben werden als:
1 2 3 4
| [ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect]; CGRect ) { 12 , 409 , 100 , 40 } ; gbutton.frame = (CGRect) {12, 409, 100, 40}; @ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Presse" Forst: UIControlStateNormal]; gbutton ] ; [MainWindow addSubview: gbutton]; |
Nur um die Dinge zu beschleunigen "der Code ausgeführt wird ... 
Fortsetzung ...
Neueste Kommentare
Simon : Es ärgert gestört wieder ein und verwenden, die Platz für diese Dinge ... aber es funktioniert nicht ...
Giovambattista Fazioli : @ Simon: Was könnte darauf zurückzuführen sein, die Syntax, die ich verwendet, die speziell für PHP 5 +,...
Simon : Ich habe versucht gestern Abend, alles in functions.php, okay, jquery Formulare und Tabs jQueryUI ihnen ...
Giovambattista Fazioli : @ Simon: Ich empfehle Reinigung zu einem Code wie in ein ...
Simon : @ Giovambattista Fazioli: Vielen Dank für Ihre Geduld, es ist alles klar ... jetzt fühle ich mich jetzt ...