我只是想下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. Android什么是最有效的方式来保存和加载图像?
- 14. 什么是导航到XAML页面的最有效方式? wp8
- 15. 什么是最好的方式添加一个项目到IEnumerable <T>?
- 16. NHibernate映射最有效的方法是什么?
- 17. 什么是一些更有效的方式来处理查询?
- 18. 将单元格添加到gridView的最佳方式是什么?
- 19. 将数组添加到Mysql的最佳方式是什么
- 20. 什么是将内容添加到模板的最佳方式?
- 21. 将“AppIcon”添加到Xcode项目中的最有效方法是什么?
- 22. 什么是在Javascript中反转数组的最有效方法?
- 23. 这是一个有效的方式来在C中添加两个字符串?
- 24. 将一个文件ID映射到另一个的最有效方式
- 25. 找到两个集合的最有效方法是什么?
- 26. 什么是最有效的方式来获得最高和最低值在一个数组
- 27. 什么是存储映射“键 - >事件流”的最有效方式?
- 28. 什么是最好的方式来匹配一个密码
- 29. 什么是最有效的方式来改变'/'分隔字符串中的最后一个元素
- 30. 什么是创建函数映射到参数的最有效方法?
为什么你要改变反射图像的alpha,然后只返回一个图像? – Jaba 2010-01-13 18:26:37
我改变alpha创建一种“金属”反射效果:)至于属性getter,假设两个图像视图都接收到相同的图像,返回其中一个是相同的,我选择从图像中返回图像_imageView,但它是一个任意的选择。感谢您选择我的答案! – 2010-01-13 18:30:00
这就是那里的大部分。但是,它不包括“淡入淡出”效果。 – philsquared 2010-01-13 18:37:32