It looks like you're new here. If you want to get involved, click one of these buttons!

- (void) loadView {
[super loadView];
self.view.backgroundColor = [UIColor blackColor];
// Modify the image name accordingly
UIImage *image = [UIImage imageNamed:@\"spongebob.png\"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
CGImageRef imageToSplit = image.CGImage;
// I'm using the lower 1/3 of the image only
CGImageRef partOfImageAsCG = CGImageCreateWithImageInRect(imageToSplit, CGRectMake(0,(image.size.height*2)/3,image.size.width, image.size.height/3));
// Create an UIImage instance of the image part
UIImage *partOfImage = [UIImage imageWithCGImage:partOfImageAsCG];
// Flip the UIImage mirrored upside-down
UIImage* flippedImage = [UIImage imageWithCGImage:partOfImage.CGImage scale:1.0 orientation: UIImageOrientationDownMirrored];
UIImageView *reflectionView = [[UIImageView alloc]initWithImage:flippedImage];
reflectionView.frame = CGRectMake(0, image.size.height, image.size.width, image.size.height/2);
// Initialize ImageContext with the combined sizes of the imageView (original image) and the reflectionView
UIGraphicsBeginImageContext(CGSizeMake(imageView.image.size.width,imageView.image.size.height+reflectionView.image.size.height));
// Creates an CGRect with the imageView content
CGRect imageRect = CGRectMake(0, 0, imageView.image.size.width, imageView.image.size.height);
// Creates an CGRect with the reflectionView content
CGRect reflectionRect = CGRectMake(0, imageView.image.size.height, reflectionView.image.size.width, reflectionView.image.size.height);
//shows the imageView at full size
[imageView.image drawInRect:imageRect];
//displays the reflection with 0.5 transparent
[reflectionView.image drawInRect:reflectionRect blendMode:kCGBlendModeScreen alpha:0.5];
// Creates an UIImage instance of the resulting image context
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Creates the resulting view
UIImageView *resultingView = [[UIImageView alloc]initWithImage:resultingImage];
// Displays the image view on screen
[self.view addSubview:resultingView];
}