我只是想下UIImageVies是在容易控制的反映最簡單的方法。什麼是最有效的方式來反映添加到一個UIImageView
回答
菲爾說,你可以有一個 「反映」 的UIImageView實例:
@interface ReflectedImageView : UIView
{
@private
UIImageView *_imageView;
UIImageView *_imageReflectionView;
}
@property (nonatomic, retain) UIImage *image;
@end
然後,在您的實現,這樣的事情
@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
最簡單的方法是用手工在Photoshop做吧! (認真 - 如果這是可行的就是這樣做)。
否則,您需要將圖像的倒置副本(或至少下半部分)放置在真實的下方,用alpha = 1到黑色的漸變(假設您的背景爲黑色)進行疊加阿爾法= 0。
如果你需要把它放在一個任意的背景這是一個有點複雜,因爲你必須從阿爾法應用梯度= 0的α= 1到你的倒影。 我敲了一些代碼,一旦做到這一點 - 將嘗試和挖掘出來後,當我得到我的Mac上,如果別人沒拿出任何東西越快。
呃,OP如何對其他用戶的圖像進行反射?這個想法是,他的應用程序有像Cover Flow一樣的反射。 – JBRWilkinson 2011-05-10 11:41:33
你在那裏做了很多假設,@JBRWilkinson – philsquared 2011-05-12 11:08:38
只需使用sample code in the the iPhone SDK library
更新:鏈接現在已經更新到新的位置
很酷,那上次我不得不這樣做:-) – philsquared 2010-01-13 18:35:51
對不起,但URL現在無效 – Xiao 2011-04-28 13:26:10
https://developer.apple。 COM /庫/ IOS /#samplecode /反射/簡介/ Intro.html#// apple_ref/DOC/UID/DTS40008063 – Krumelur 2012-03-03 12:08:23
我寫了一篇關於如何生成任何UI元素或元素組的反射的文章。罐裝技術可以放入您的項目中,並且非常易於使用。源代碼和文章可以在http://aptogo.co.uk/2011/08/no-fuss-reflections/
我很想讀,但鏈接已損壞:( – 2016-02-02 20:07:41
- 1. 什麼是移動UIImageView最有效的方式?
- 2. 在IE8 +中添加元素的最有效方式是什麼?
- 3. WPF:將項目添加到ListView的最有效/最快的方式是什麼?
- 4. 什麼是最快/最有效的方式來追加一個文件加載到內存中的文件?
- 5. 什麼是最有效的方式來處理這個功能?
- 6. 什麼是最有效的方式來存儲一個非有向圖?
- 7. 什麼是最有效的方式來做到這一點(jQuery的片段)?
- 8. 什麼是最有效的方法來重置反應角形式?
- 9. 什麼是最好的方式來添加一個複合材料綁定到一個現有的類
- 10. (Mysql)什麼是最有效的方式來存儲表更改?
- 11. 什麼是最有效的方式來實現這種佈局
- 12. 什麼是最有效的方式來存儲500.000圖像?
- 13. 什麼是最有效的方式來填充列表視圖?
- 14. 什麼是最有效的方式來存儲這些數據?
- 15. 什麼會是一個更有效的方式來做到這一點?
- 16. 什麼是最好的方式來追加HTML只是一次?
- 17. Android什麼是最有效的方式來保存和加載圖像?
- 18. 什麼是導航到XAML頁面的最有效方式? wp8
- 19. 什麼是通過字節流中途添加數據的最有效方式?
- 20. 什麼是最好的方式添加一個項目到IEnumerable <T>?
- 21. NHibernate映射最有效的方法是什麼?
- 22. 什麼是一些更有效的方式來處理查詢?
- 23. 什麼是在Javascript中反轉數組的最有效方法?
- 24. 什麼是將內容添加到模板的最佳方式?
- 25. 將Redis添加到/ etc/services最優雅的方式是什麼?
- 26. 將數組添加到Mysql的最佳方式是什麼
- 27. 將單元格添加到gridView的最佳方式是什麼?
- 28. 什麼是最有效的方式來存儲mysql表最近的變化
- 29. 什麼是最有效的方式來合併幾個php數組?
- 30. 將「AppIcon」添加到Xcode項目中的最有效方法是什麼?
爲什麼你要改變反射圖像的alpha,然後只返回一個圖像? – Jaba 2010-01-13 18:26:37
我改變alpha創建一種「金屬」反射效果:)至於屬性getter,假設兩個圖像視圖都接收到相同的圖像,返回其中一個是相同的,我選擇從圖像中返回圖像_imageView,但它是一個任意的選擇。感謝您選擇我的答案! – 2010-01-13 18:30:00
這就是那裏的大部分。但是,它不包括「淡入淡出」效果。 – philsquared 2010-01-13 18:37:32