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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值