iOS将一个图片平均分成两部分


http://www.cocoachina.com/ios/20151230/14817.html

+ (void)addToCurrentView:(UIView *)view clipImage:(UIImage *)image backgroundImage:(NSString *)backgroundImage {

    

    // 上半部

    UIImageView *topImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, Width, Height * 0.5)];

    topImgView.image = [self clipImage:image withRect:CGRectMake(0, 0, imageW, imageH)];

    

    // 下半部

    UIImageView *bottomImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, Height * 0.5, Width, Height * 0.5)];

    bottomImgView.image = [self clipImage:image withRect:CGRectMake(0, imageH, imageW, imageH)];

    

    // 延时操作

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        // 执行动画

        [UIView animateWithDuration:2.0f animations:^{

            CGRect topRect = topImgView.frame;

            topRect.origin.y -= imageH;

            topImgView.frame = topRect;

            

            CGRect bottomRect = bottomImgView.frame;

            bottomRect.origin.y += imageH;

            bottomImgView.frame = bottomRect;

        }];

    });

    

    // 背景图

    UIImageView *bgImage = [[UIImageView alloc] initWithFrame:view.bounds];

    bgImage.image = [UIImage imageNamed:backgroundImage];

    

    // 添加到视图

    [view addSubview:bgImage];

    [view addSubview:topImgView];

    [view addSubview:bottomImgView];

}


// 返回裁剪后的图片

+ (UIImage *)clipImage:(UIImage *)image withRect:(CGRect)rect {

    CGRect clipFrame = rect;

    CGImageRef refImage = CGImageCreateWithImageInRect(image.CGImage, clipFrame);

    UIImage *newImage = [UIImage imageWithCGImage:refImage];

    CGImageRelease(refImage);

    return newImage;

}

你可能感兴趣的:(iOS)