ios view轉(zhuǎn)image

關(guān)于view轉(zhuǎn)image其實挺簡單的

//將view轉(zhuǎn)換成image,
- (UIImage *)setImageWithView:(UIView *)view{
    UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, 0.0);  //圖形上下文設(shè)置
    UIGraphicsBeginImageContext(view.frame.size); //開啟位圖
    [view drawViewHierarchyInRect:view.frame afterScreenUpdates:YES];//在這里將view重寫進上下文中
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();//賦值
    UIGraphicsEndImageContext();//結(jié)束
    return image;
}

可能很多人覺得view轉(zhuǎn)image有什么用啊

0.gif

我在寫倒計時的動畫,想做一個中間翻疊的動畫,看了很多代碼,發(fā)現(xiàn)了
view在翻轉(zhuǎn)的時候,只能根據(jù)一個點的位置進行翻轉(zhuǎn),這樣就不能做出中間翻疊的效果,所有就只有把一個view變成2張image才能進行下去,下面如何寫代碼有寫,自己看吧:

//將image分成2份
-(NSArray *)setImageArrWithImage:(UIImage *)image{
    //創(chuàng)建2個位圖
    CGImageRef newImageRef1 = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(0, 0, image.size.width, image.size.height/2.0));
    CGImageRef newImageRef2 = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(0, image.size.height/2.0,image.size.width,image.size.height));
    
    UIImage *image1 = [UIImage imageWithCGImage:newImageRef1];
    UIImage *image2 = [UIImage imageWithCGImage:newImageRef2];
    
    CGImageRelease(newImageRef1);
    CGImageRelease(newImageRef2);
    return @[image1,image2];
}

那如何進行翻轉(zhuǎn)呢,那就更簡單了

[UIView animateWithDuration:2 animations:^{
        CATransform3D transform = CATransform3DIdentity;
        transform.m34 = -10 /1000;
        CGFloat angle = - 100 / 360.0 * 2 * M_PI;;
        view1.layer.transform = CATransform3DRotate(transform, angle,   1, 0, 0);
    }];

寫的時候大家注意一下,我這里只翻轉(zhuǎn)了view1,view2跟view1合起來才是一個完整的view

在翻轉(zhuǎn)的時候默認(rèn)是根據(jù)view1的中心點來的這點就比較惡心了
這時候 我們要重設(shè)view1的中心點,layer.anchorPoint 就是這惡心的屬性

開心.png

當(dāng)你設(shè)置之后如果發(fā)現(xiàn)視圖的位置不對了,你要重設(shè)frame的位置,至于為什么 我也不知道

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,704評論 4 61
  • 七屋嶺——正是菊花盛開時 題記—— 你來或者不來 七屋嶺村都在那里 驚艷時光 安靜綻放—— ...
    碧玲瓏閱讀 2,031評論 1 6
  • “哦,沒事?!毙螌擂蔚牡皖^,繼續(xù)吃飯。趁同事還沒回過神的時候,她說“我吃完了,先走了啊。” 哎,怎么成了這樣。走...
    回憶里的蒲公英閱讀 173評論 0 0
  • 難忘那一段天真的時光,難忘那一段快樂的時光。幾年過去了,那些歌聲笑語仿佛還在我耳邊回響。 那時候,我真的好幸福,我...
    文1廢筆閱讀 276評論 0 0

友情鏈接更多精彩內(nèi)容