Wenn Sie versuchen, eine Notiz in der Notes Anwendung des iPhones zu löschen, wird ein UIActionSheet angezeigt. Das Blatt ist durchscheinend (aber nicht schwarz durchscheinend). Wie wird das erreicht? Ist es möglich, den Hintergrund von UIActionSheet mit einer bestimmten Farbe zu versehen?iPhone Entwicklung: Wie erstellt man einen farbigen oder transluzenten Hintergrund für UIActionSheet?
Antwort
ich in der Regel die folgenden Delegatmethode implementieren:
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
Nur um eine Probe. In diesem Fall verwende ich eine gestreckte png als Hintergrund:
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
UIImage *theImage = [UIImage imageNamed:@"detail_menu_bg.png"];
theImage = [theImage stretchableImageWithLeftCapWidth:32 topCapHeight:32];
CGSize theSize = actionSheet.frame.size;
// draw the background image and replace layer content
UIGraphicsBeginImageContext(theSize);
[theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];
theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[actionSheet layer] setContents:(id)theImage.CGImage];
}
und das ist das Ergebnis: alt text http://grab.by/4yF1
Es sieht schwarz für mich aus (Hinweis: mit 2.2.1). Der einzige Grund, warum es eine Farbe gibt, ist wegen des Gelbs dahinter.
Eine Option wäre, den schwarz-transparenten Hintergrund zu verwenden und die Größe und Geschwindigkeit des Aktionsblatts herauszufinden. Erstellen Sie dann eine Ansicht und animieren Sie sie, während Sie das Aktionsblatt direkt darunter anzeigen, um eine andere Farbe als die Farbe hinter dem Aktionsblatt zu erhalten. Sie müssten die Farbansicht auch durchscheinend machen, damit Sie auch dahinter sehen können.
Ich bin mir nicht sicher, ob Sie das können, aber Sie können auch versuchen, die Deckkraft des Action Sheets selbst anzupassen.
Einstellen der Die Opazität des Aktionsblatts wirkt sich auch auf die Schaltflächen aus. – Boon
Wenn Sie sich die Notizenanwendung ansehen, werden Sie feststellen, dass die Schaltflächen nicht zu 100% undurchsichtig sind. –
Sie können die Deckkraft auf jeden Fall anpassen, indem Sie den Alpha-Wert einstellen. Interface Builder können Sie den Wert direkt bearbeiten, aber in Code ich glaube, Sie tun würde:
[[myActionSheet view] setOpaque:NO];
[[myActionSheet view] setAlpha:0.5];
Ich bin nicht sicher, ob Sie die setOpaque Anruf brauchen oder nicht - ich denke, das verwendet wird, um die Leistung zu optimieren, wie Das iPhone versucht nicht, durch die undurchsichtige Ansicht etwas zu rendern.
Es ist nicht zu schwierig. Sie können den folgenden Code verwenden:
CGSize mySize = myActionSheet.bounds.size;
CGRect myRect = CGRectMake(0, 0, mySize.width, mySize.height);
UIImageView *redView = [[[UIImageView alloc] initWithFrame:myRect] autorelease];
[redView setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.5]];
[myActionSheet insertSubview:redView atIndex:0];
So stellen Sie sicher, dass Sie die UIActionSheet präsentieren, bevor diese oder die Größe wird nicht eingestellt werden, zu tun. Das macht es ein bisschen hässlich, aber man könnte so etwas wie tun:
[myActionSheet showInView:self.view];
if (!redAdded) {
redAdded = YES;
//THE ABOVE CODE GOES HERE
}
Wenn Sie stattdessen die Größe an die Ansicht binden, müssen Sie den späteren Teil nicht ausführen. Außerdem musste x und y durch Höhe und Breite ersetzt werden: CGSize mySize = self.view.bounds.size; CGRect myRect = CGRectMake (0, 0, mySize.height, mySize.width); – StuartM
Verwenden von - (void) willPresentActionSheet: (UIActionSheet *) actionSheet ist ein besserer Hook im Allgemeinen –
Sie können auch ein Bild anstelle einer Farbe verwenden, indem Sie ein UIImage auf die UIImageView festlegen: [actionBackground setImage: [UIImage imageNamed: @ "captainplanet. png "]]; – ninehundredt
Sie den Code unten verwenden:
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackOpaque;
oder
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent;
Danke, das ist genau das, was ich gesucht habe – GeneCode
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent;
- 1. Wie erstellt man in C#/.net einen transluzenten Clientbereich?
- 2. Wie bekomme ich einen transluzenten Hintergrund mit opakem Text?
- 3. Wie kann ich einen transluzenten modalen UIViewController erstellen?
- 4. iPhone Entwicklung-Leopard oder Schneeleopard?
- 5. Wie erstellt man ein Dendrogramm mit farbigen Zweigen?
- 6. Hardwareanforderungen für die iPhone-Entwicklung
- 7. iPhone Entwicklung - Speicherbeschränkung für iPhone-Anwendung
- 8. Entwicklung für iphone unter Unix
- 9. Android: Wie man einen Hintergrund von Muster erstellt?
- 10. Wie man einen Typedef für Funktionszeiger erstellt
- 11. Wie man Parallelogramm Form Hintergrund erstellt?
- 12. iPhone Entwicklung: Ressourcen für Anfänger
- 13. Wie erstellt man mehrere Objekte im Hintergrund?
- 14. Crossplatform Entwicklung für iPhone & Android
- 15. Wie erstellt man einen Grid-Kalender im iPhone?
- 16. Wie erstellt man einen Pyinstaller-Hook oder einen versteckten Import?
- 17. Wie erstellt man .IPA für Native React?
- 18. Wie erstellt man ein einfaches Beispiel Konsolenanwendung zur Entwicklung separater Klassen für die testgetriebene Entwicklung?
- 19. Iphone Entwicklung: Wie schlecht ist
- 20. iPhone Entwicklung Implementierung: SQLite oder Web Service
- 21. iPhone Webanwendung Entwicklung
- 22. Wie erstellt man Liniendiagramm in iPhone-Anwendung?
- 23. iPhone Entwicklung
- 24. Wie erstellt man einen Bildbetrachter wie Facebook oder Twitter? iOS
- 25. wie man farbigen Rand auf cardview einstellt
- 26. Wie erstellt man einen Systemwiederherstellungspunkt?
- 27. Wie man ein Dropdown-Button für das iPhone erstellt
- 28. Wie erstellt man einen Begrüßungsbildschirm und führt einen Listview-Prozess im Hintergrund aus?
- 29. Wie erstellt man ein Anwendungspaket in iPhone?
- 30. Wie schwer ist iPhone/iPad Entwicklung
Hey, kannst du bitte einen Link zu diesem Bild posten?Es sieht wirklich nett aus, danke und großartige Lösung, um das Hintergrundbild zu ersetzen! – JonasG
das funktioniert nicht für mich !!! – Fay007