我只想要在UIImageView下进行反射的最简单方法,该方法易于管理。
答案 0 :(得分:20)
只需使用sample code in the the iPhone SDK library
即可更新:链接现已更新为新位置
答案 1 :(得分:11)
正如Phil所说,你可以有一个“反映”的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
答案 2 :(得分:2)
我写了一篇关于如何生成任何UI元素或元素组的反射的文章。罐装技术可以放入您的项目中,并且非常易于使用。可以在http://aptogo.co.uk/2011/08/no-fuss-reflections/
找到源代码和文章答案 3 :(得分:-3)
最简单的方法是在Photoshop中手动完成! (严肃地说 - 如果那是可行的那样)。
否则你需要制作图像的反转副本(或者至少是下半部分)放置在真实的图像下面,用黑色渐变覆盖(假设你的背景为黑色),alpha = 1到alpha = 0。
如果你需要将它放在任意背景上,它会更复杂,因为你必须将alpha = 0到alpha = 1的渐变应用到你的倒像。 我敲了一些代码就做了 - 当我到达我的Mac时会尝试挖出来,如果没有其他人能早点拿到任何东西。