Я просто хочу самый легкий способ сделать отражение под UIImageVies, который легко managable.
Как 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
Просто используют пример кода в библиотека iPhone SDK
Обновление : Ссылка теперь обновляется к новому местоположению
Самый простой способ - сделать это вручную в Photoshop! (серьезно - если это практично - просто сделай это).
Иначе вам нужно будет сделать инвертированную копию изображения (или, по крайней мере, нижнюю половину), чтобы поместить его под реальное, наложив градиент из черного (предполагая, что ваш фон черный) с alpha=1 до alpha=0.
Если вам нужно поместить его на произвольный фон, то это немного сложнее, так как вам придется применить градиент из альфа = 0 к альфа = 1 к инвертированному изображению. Однажды я вырубил какой-то код, чтобы сделать это - попробую выкопать его позже, когда доберусь до своего Mac, если больше никто ничего не придумал раньше.