Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
Eigenschaften von Objekten erfragen
Eigenschaften von Objekten erfragen
hobbittt
01.10.11
17:43
Hallo,
ich möchte herausfinden, ob meine UIPickerView versteckt ist oder nicht (für eine if-Anweisung). Hierfür habe ich Folgendes versucht:
UIPickerView *picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0f, 250.0f, 320.0f, 200.0f)];
picker.delegate = self;
picker.dataSource = self;
picker.showsSelectionIndicator = YES;
if (meinPicker.hidden == YES) {
[self.view addSubview:picker];
} else {
[picker removeFromSuperview];
}
Programm läuft, aber beim buttonPressed: passiert rein garnichts. Lasse ich die if-Anweisung weg und schreibe nur:
[self.view addSubview:picker];
klappt's.
Jetzt wollte ich vorher eine Variable einführen, ich versuche es mal so aufzuschreiben, dass Ihr wisst, was ich meine. Ich brauche aber den richtigen Code:
BOOL *isPickerHidden = meinPicker.hidden ? YES , NO;
Bitte die letzte Zeile verbessern, dann bin ich froh.
Danke!
Hilfreich?
0
Kommentare
yan.kun0567
01.10.11
19:26
Lies doch mal die Developer Doku zu dem Property
Hidden bestimmt nicht automatisch, ob ein View sichtbar ist oder nicht, sondern dadurch wird festgelegt, ob das View sichtbar seien soll. Default mäßig nach dem Erstellen der Instanz wird das Property auf No gesetzt. Was du willst ist:
if ([meinPicker superview] == nil) {
[self.view addSubview:meinPicker];
} else {
[meinPicker removeFromSuperview];
}
Und:
BOOL *isPickerHidden = meinPicker.hidden ? YES , NO;
Ist gleich zweifach falsch.
1) Wieso machst du aus einem einfachen Typen (bool) einen Pointer? Das brauchst du nicht.
2) Der ternary-Operator sieht so aus:
result = ist das wahr ? ja : nein;
Hilfreich?
0
MacMark
01.10.11
23:03
Die coolen Kids schreiben
if ([meinPicker superview]) {…
Die Abfrage auf nil macht die Objective-C Runtime implizit. Oder auch
if (meinPicker.superview) {…
Liest sich am elegantesten.
„@macmark_de“
Hilfreich?
0
MacMark
01.10.11
23:10
Wenn er keinen Superview hat, ist er nicht in der View-Hierachie, also so oder so nicht sichtbar, egal was in hidden steht. Hidden hat erst die Chance über Sichtbarkeit zu bestimmen, wenn der View in der View-Hierachie irgendwo eingehängt ist.
„@macmark_de“
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Kurz: Apple bietet iPhone 15 erstmals refurbish...
M4 Mac mini im Effizienztest: Hohe Ersparnis im...
Interview: Größte private Mac-Sammlung
Test Apple Mac mini M4
Apple Intelligence: Weiterhin Nonsens-Zusammenf...
Bilder geben Hinweis: Mac mini M4 mit austausch...
Baldige Überarbeitung: Welche Macs, iPhones und...
Bald viel mehr HomeKit-kompatible Geräte? Apple...