2010-12-28 17 views
1

Ich habe einen gruppierten Stil UITableView auf meinem Navigationsstapel, und wenn ich auf eine Zelle klicke, schiebe ich einen UIDatePicker auf den Stapel. Das Problem ist, dass diese benutzerdefinierte Ansicht dieselbe Hintergrundfarbe wie meine Tabellenansicht haben soll.UIColor groupTableViewBackgroundFarbe ist transparent

Ich habe versucht, die Hintergrundfarbe meiner benutzerdefinierten Ansicht wie Einstellung:

datePicker.backgroundColor = [UIColor groupTableViewBackgroundColor];

Aber das kommt aus transparent. Ich versuchte auch, das zugrundeliegende CGColor Objekt zu modifizieren, um ein Alpha von 1.0 zu haben, das die Hintergrundfarbe verursachte, um schwarz zu sein.

Die folgende tut wie erwartet:

datePicker.backgroundColor = [UIColor lightGrayColor];

Aber natürlich geht diese Farbe nicht ganz an die gruppierte Tabelle Hintergrundfarbe.

Gehe ich das alles falsch? Ich fand einen ähnlichen Beitrag über diese here, aber keine hilfreiche Antwort.

Antwort

1

Was meinst du mit "Push ein UIDatePicker auf den Stapel"? Warum versuchen Sie nicht, den UIDatePicker in View zu animieren?

, wenn die Ansicht geladen wird, den Picker erstellen und den Rahmen außerhalb des Bildschirms, wie

[picker setFrame:CGRectMake(0,960,320,216)]; 

dann statt „Schieben“ der Kommissionierer, animiert sie ins Blickfeld gesetzt wie:

[UIView beginAnimations:nil context:NULL]; 
    [picker setFrame:CGRectMake(0,200,320,216)]; 
    [UIView commitAnimations]; 

Und wenn Sie den Picker ablehnen möchten, verstecken Sie es einfach wie folgt:

[UIView beginAnimations:nil context:NULL]; 
    [picker setFrame:CGRectMake(0,960,320,216)]; 
    [UIView commitAnimations]; 

Wenn Sie brauchen, können Sie al so fügen Sie eine Symbolleiste mit einem "fertig" -Button, um den Pflücker zu entlassen, funktioniert gut für mich.

Wenn der Inhalt der Auswahl in der Tabelle angezeigt wird, können Sie den Rahmen der Tabelle in dieser Animationssequenz festlegen. in der ersten, machen Sie die Tabelle halb so groß (wie 150 für mein Beispiel würde perfekt arbeiten), dann in der Versteck-Sequenz, machen Sie die Tabelle die Originalgröße (415 für dieses Beispiel). Wenn Sie die Auswahl ausblenden, rufen Sie [tableView reloadData]; auf, um die Tabelle zu aktualisieren.

+0

Danke - ich denke, ich ging völlig falsch. Das ist viel besser. – Eric

+0

Das einzige Problem, das ich mit dieser Lösung habe, ist, dass ich die Tabellenansicht nicht ändern kann. Der Aufruf von 'setFrame' in der' tableView' scheint keine Wirkung zu haben. – Eric

+0

Das UITableView muss in einer UIView sein. Wenn Ihr Controller ein UITableViewController ist, können Sie die Größe nicht ändern. – WrightsCS