Po prostu chcę najprostszy sposób, aby dokonać refleksji pod UIImageVies, który jest łatwy w zarządzaniu.Jaki jest najbardziej skuteczny sposób dodawania odbicia do UIImageView
Odpowiedz
Jak mówi Phil, można mieć "odbicie" instancji UIImageView:
@interface ReflectedImageView : UIView
{
@private
UIImageView *_imageView;
UIImageView *_imageReflectionView;
}
@property (nonatomic, retain) UIImage *image;
@end
a następnie, w Twojej implementacji coś takiego:
@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
Najprostszym sposobem jest zrobienie tego ręcznie w Photoshopie! (poważnie - jeśli to praktyczne, po prostu to zrób).
W przeciwnym razie należy ułożyć odwróconą kopię obrazu (lub przynajmniej jego dolną połowę), aby umieścić go poniżej rzeczywistego, nałożonego gradientem z czerni (zakładając, że tło jest czarne) z alfa = 1 do alpha = 0.
Jeśli chcesz umieścić go na dowolnym tle, jest to trochę bardziej skomplikowane, ponieważ będziesz musiał zastosować gradient od alfa = 0 do alfa = 1 do odwróconego obrazu. Raz zapukałem jakiś kod, aby to zrobić - spróbuję go przekopać później, kiedy dostanę się do mojego Maca, jeśli nikt wcześniej nie wymyśli niczego.
. Jak, w jaki sposób PO może dokonywać refleksji dla obrazów innych użytkowników? Chodzi o to, że jego aplikacja ma odbicia, takie jak Cover Flow. – JBRWilkinson
Podsuwasz tam wiele założeń, @JBRWilkinson – philsquared
Wystarczy użyć sample code in the the iPhone SDK library
Aktualizacja: link teraz zaktualizowany do nowej lokalizacji
Fajnie, nie było mnie ostatnio, gdy musiałem to zrobić :-) – philsquared
Niestety, URL nie jest już ważny – Xiao
https://developer.apple. com/library/ios/# samplecode/Reflection/Introduction/Intro.html # // apple_ref/doc/uid/DTS40008063 – Krumelur
Napisałem artykuł o tym, jak wygenerować odbicia dowolnego elementu interfejsu użytkownika lub grupy elementów. Technikę puszki można upuścić do projektu i jest naprawdę łatwa w użyciu. Kod źródłowy i artykuł można znaleźć pod adresem http://aptogo.co.uk/2011/08/no-fuss-reflections/
Chciałbym przeczytać, ale link jest zepsuty :( –
- 1. Java - Jaki jest najbardziej skuteczny sposób synchronizowania ArrayList?
- 2. Jaki jest najbardziej skuteczny sposób tworzenia dodatkowych wątków z wątku?
- 3. Najbardziej skuteczny sposób zapisu pliku do ServletOutputStream
- 4. Jaki jest najbardziej skuteczny sposób wyszukiwania zagnieżdżonych list w python?
- 5. Jaki jest najbardziej skuteczny sposób wykrywania skrzyżowań trójkąt-trójkąt?
- 6. Najbardziej skuteczny sposób zliczania wystąpień?
- 7. Python: najbardziej skuteczny sposób przekonwertować datę datetime
- 8. Najbardziej skuteczny sposób modyfikacji zawartości CMSampleBuffer
- 9. Najbardziej skuteczny sposób tworzenia dziennika aktywności
- 10. najbardziej skuteczny sposób debugowania na urządzeniu Blackberry?
- 11. Najbardziej skuteczny sposób rysowania wielu identycznych obiektów?
- 12. Najbardziej skuteczny sposób konwersji InputStream na bajt []?
- 13. Jaki jest skuteczny i elegancki sposób dodawania pojedynczego elementu do niezmiennego zestawu?
- 14. Jaki jest skuteczny sposób porównywania obiektów StringBuilder
- 15. Najbardziej skuteczny sposób aktualizacji za pomocą LINQ do SQL
- 16. WPF: jaki jest najbardziej wydajny/szybki sposób dodawania elementów do ListView?
- 17. Jaki jest najbardziej elegancki sposób łączenia opcji?
- 18. Jaki jest najbardziej skuteczny sposób przywracania wielu baz danych w SQL 2008
- 19. Jaki jest najbardziej Pythonowy sposób określania endianiczności?
- 20. Najbardziej skuteczny sposób tworzenia CALayer z obrazem w nim?
- 21. Najbardziej skuteczny sposób obliczania odległości Hamminga w Ruby?
- 22. Najbardziej skuteczny sposób ustawiania stylu za pomocą czystego javascript?
- 23. Jaki jest najbardziej elegancki sposób sortowania bąbelkowego w F #?
- 24. Python jaki jest najbardziej efektywny sposób oczekiwania na dane wejściowe
- 25. Najbardziej skuteczny sposób na usunięcie wszystkich zduplikowanych wierszy z tabeli?
- 26. Najbardziej skuteczny sposób tworzenia połączonej listy z przechowywanych danych?
- 27. Jaki jest dobry sposób dodawania zależności Pythona do kontenera Docker?
- 28. Jaki jest najbardziej wydajny sposób rejestrowania nazwy klasy i metody?
- 29. Jawa, najbardziej skuteczny sposób przekazać tablicę ciągów jako parametru Metoda
- 30. Najbardziej skuteczny sposób na znalezienie najbliższej liczby całkowitej w MySQL?
Dlaczego zmieniasz alfa odbijanego obrazu, a następnie zwracasz tylko jedno zdjęcie? – Jaba
Zmieniam alfa, tworząc rodzaj "metalicznego" efektu odbicia :) Jeśli chodzi o getter właściwości, biorąc pod uwagę, że oba widoki obrazów otrzymują ten sam obraz, zwracanie któregokolwiek z nich jest takie samo i wybrałem zwrócenie obrazu z _imageView, ale jest to arbitralny wybór. Dziękuję za wybór odpowiedzi! –
To jest większość drogi. Nie obejmuje jednak efektu "zanikania". – philsquared