Ich möchte nur die einfachste Möglichkeit, eine Reflexion unter einem UIImageVies machen, die leicht zu managen ist.Was ist die effizienteste Möglichkeit, eine Reflexion zu einem UIImageView hinzuzufügen
Antwort
Als Phil sagt, können Sie haben eine "reflektiert" UIImageView Beispiel:
@interface ReflectedImageView : UIView
{
@private
UIImageView *_imageView;
UIImageView *_imageReflectionView;
}
@property (nonatomic, retain) UIImage *image;
@end
Und dann, in Ihrer Implementierung, etwas wie dieses
@implementation ReflectedImageView
@dynamic image;
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
self.backgroundColor = [UIColor clearColor];
// This should be the size of your image:
CGRect rect = CGRectMake(0.0, 0.0, 320.0, 290.0);
_imageReflectionView = [[UIImageView alloc] initWithFrame:rect];
_imageReflectionView.contentMode = UIViewContentModeScaleAspectFit;
_imageReflectionView.alpha = 0.4;
_imageReflectionView.transform = CGAffineTransformMake(1, 0, 0, -1, 0, 290.0);
[self addSubview:_imageReflectionView];
_imageView = [[UIImageView alloc] initWithFrame:rect];
_imageView.contentMode = UIViewContentModeScaleAspectFit;
[self addSubview:_imageView];
}
return self;
}
- (void)setImage:(UIImage *)newImage
{
_imageView.image = newImage;
_imageReflectionView.image = newImage;
}
- (UIImage *)image
{
return _imageView.image;
}
- (void)dealloc
{
[_imageView release];
[_imageReflectionView release];
[super dealloc];
}
@end
Der einfachste Weg ist, es manuell in Photoshop zu tun! (Ernsthaft - wenn das praktisch ist, mach das einfach).
Andernfalls müssen Sie eine Kopie des Bildes (oder mindestens der unteren Hälfte) unter dem echten kopieren, überlagert mit einem Farbverlauf von Schwarz (vorausgesetzt, Ihr Hintergrund ist schwarz) mit Alpha = 1 bis Alpha = 0.
Wenn Sie es über beliebige Hintergründe platzieren müssen, ist es etwas komplexer, da Sie den Gradienten von Alpha = 0 bis Alpha = 1 auf Ihr invertiertes Bild anwenden müssen. Ich habe mal einen Code hochgekriegt, um es zu tun - werde versuchen, es später auszugraben, wenn ich auf meinen Mac komme, wenn niemand sonst etwas früher herausgefunden hat.
Äh, wie kann das OP Reflexionen für die Bilder anderer Benutzer machen? Die Idee ist, dass seine App die Reflexionen hat, wie Cover Flow tut. – JBRWilkinson
Sie machen eine Menge Annahmen, @JBRWilkinson – philsquared
einfach die
sample code in the the iPhone SDK library verwendenaktualisieren: Link jetzt an neuen Standort aktualisiert
Cool, das war nicht das letzte Mal musste ich das tun :-) – philsquared
Sorry, aber URL ist nicht gültig – Xiao
https://developer.apple. com/library/ios/# Beispielcode/Reflektion/Einführung/Intro.html # // Apple_ref/doc/uid/DTS40008063 – Krumelur
Ich schrieb einen Artikel darüber, wie man Reflexionen eines beliebigen UI-Elements oder einer Gruppe von Elementen erzeugt. Die Dosen-Technik kann in Ihr Projekt eingefügt werden und ist wirklich einfach zu bedienen. Quellcode und Artikel finden Sie unter http://aptogo.co.uk/2011/08/no-fuss-reflections/
Ich würde gerne lesen, aber der Link ist kaputt :( –
- 1. Was ist die effizienteste Art, ein UIImageView zu verschieben?
- 2. Ist es möglich, mehrere Bilder in einem einzigen uiimageview hinzuzufügen?
- 3. Was ist eine gute Möglichkeit, Python-Abhängigkeiten zu einem Docker-Container hinzuzufügen?
- 4. Die effizienteste Möglichkeit, CMSampleBuffer Inhalt zu ändern
- 5. Die effizienteste Möglichkeit, Thumbnails zu erstellen?
- 6. Was ist die effizienteste Möglichkeit zu überprüfen, ob ein Datensatz in Oracle vorhanden ist?
- 7. Was ist die effizienteste Datenstruktur für Keywords?
- 8. Was ist die effizienteste Möglichkeit, Daten in diesem Fall zu extrahieren?
- 9. Was ist die effizienteste Möglichkeit, mehrere (parallele) Anforderungen an einen Webdienst mit WCF zu stellen?
- 10. Was ist die effizienteste Art, Core Data zu verwenden?
- 11. MySQL: Was ist die effizienteste Möglichkeit, mehrere zufällige Zeilen zu wählen
- 12. In Python, was ist die effizienteste Möglichkeit, 3 Dicts zu kombinieren und nach einem der Schlüssel des Diktats zu sortieren?
- 13. Was ist die effizienteste Möglichkeit, ein Element mit jQuery zu leeren
- 14. Was ist die CPU-effizienteste Möglichkeit, große Bilder in Python zu skalieren
- 15. Was ist die effizienteste Möglichkeit, große Datenmengen in einer Tabelle in C#
- 16. effizienteste Möglichkeit, auf Blackberry-Gerät zu debuggen?
- 17. Versuchen, eine Datentabelle zu einem DataSet hinzuzufügen
- 18. Smartest und effizienteste Möglichkeit, eine Schleife in Ruby zu implementieren
- 19. Gibt es eine Möglichkeit, einem laufenden Hadoop-Cluster Knoten hinzuzufügen?
- 20. Gibt es eine Möglichkeit, Beschreibungen zu JUnit-Tests hinzuzufügen?
- 21. Gibt es eine Möglichkeit, bestimmte UIImageView-Eigenschaften zu erhalten?
- 22. Ist dies die effizienteste Möglichkeit, diese XDocument-Abfrage auszudrücken?
- 23. Gibt es eine Möglichkeit, einem Grafikobjekt einen MouseListener hinzuzufügen?
- 24. Die effizienteste und zuverlässigste Möglichkeit, die Dateierstellung in einem bestimmten Ordner dauerhaft zu überwachen
- 25. Was ist der effizienteste Weg, um eine Benutzerdatenbank mit einem externen Mailinglistendienst zu synchronisieren?
- 26. effizienteste Möglichkeit, eine benutzerdefinierte horizontal scrollbare Rasterliste zu erstellen?
- 27. Gibt es eine Möglichkeit, einem Protokoll einen generischen Typparameter hinzuzufügen?
- 28. Was ist die effizienteste Möglichkeit zum Speichern von Name/Wert-Paaren in einer Marklogic-Datenbank
- 29. Was ist eine bessere Möglichkeit, eine Textdatei zu kopieren?
- 30. Gibt es eine Möglichkeit, Metadaten zu JavaScript-Objekten hinzuzufügen?
Warum ändern Sie das Alpha des reflektierten Bildes, dann nur ein Bild zurück? – Jaba
Ich ändere das Alpha, um eine Art "metallischen" Reflektionseffekt zu erzeugen :) Da der Property-Getter beide Bildansichten das gleiche Bild erhält, ist die Rückgabe beider Bilder gleich, und ich entschied mich dafür, das Bild zurückzugeben _imageView, aber es ist eine willkürliche Wahl. Danke für die Auswahl meiner Antwort! –
Das ist am meisten da. Es beinhaltet jedoch nicht den "Fade" -Effekt. – philsquared