卡片翻頁 效果,從 正面 翻轉(zhuǎn)到 反面 (iOS)

?PS: 寫完這篇文章發(fā)現(xiàn)了系統(tǒng)封裝好的方法,感興趣可以移步 下一篇文章 效果是不一樣的,大家可以比較一下喲

 網(wǎng)上找了,好多翻頁的效果,但是都不適合,因?yàn)檎娣疵娑际?要顯示的view, 我們需要的效果是 從正面 翻頁 到反面,顯示反面的內(nèi)容

?這時(shí)候 就想自己做了

?view.layer 有一個(gè) transform 的屬性,利用這個(gè)我們可以達(dá)到讓我們的view 以center.y 的 y 軸 為中心 翻轉(zhuǎn)

?利用這個(gè)特性,我想到了,可以 把將要消失的正面 View 翻轉(zhuǎn)90度,然后讓 要顯示的view 從 90度 開始 翻轉(zhuǎn) 到 0 度,這樣我們看到的就是 正反面 翻轉(zhuǎn) 交替顯示,欺騙的是你的眼睛喲,下面上代碼

+ (void)transitformShowView:(UIView *)view hiddenView:(UIView *)toView
{
    view.layer.transform = CATransform3DMakeRotation( M_PI/ 2 , 0, 1, 0);
    toView.layer.transform = CATransform3DMakeRotation( M_PI/ 2 , 0, 0, 0);
    [view.superview bringSubviewToFront:view];

    [UIView animateWithDuration:0.6 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        toView.layer.transform = CATransform3DMakeRotation( M_PI/ 2 , 0, 1, 0);
    } completion:^(BOOL finished) {

        [view.superview bringSubviewToFront:view];

        [UIView animateWithDuration:0.6 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        view.layer.transform = CATransform3DMakeRotation( 0 , 0, 1, 0);
        }completion:nil];

    }];
}

?下面是gif 效果

-----2.gif

?另外附上 添加了 不做作的彈性動(dòng)畫的效果,為什么不做作?自己試下唄

+ (void)transitformShowView:(UIView *)view hiddenView:(UIView *)toView
{
    view.layer.transform = CATransform3DMakeRotation( M_PI/ 2 , 0, 1, 0);
    toView.layer.transform = CATransform3DMakeRotation( M_PI/ 2 , 0, 0, 0);
    [view.superview bringSubviewToFront:view];

    [UIView animateWithDuration:0.4 delay:0 usingSpringWithDamping:1 initialSpringVelocity:6 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        toView.layer.transform = CATransform3DMakeRotation( M_PI/ 2 , 0, 1, 0);
     
    } completion:^(BOOL finished) {
        [view.superview bringSubviewToFront:view];
        [UIView animateWithDuration:0.4 delay:0 usingSpringWithDamping:0.8 initialSpringVelocity:0.1 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        view.layer.transform = CATransform3DMakeRotation( 0 , 0, 1, 0);
        }completion:nil];
    }];
}

?下面效果圖,但沒有用手機(jī)來的爽

-----4.gif

最后提一句,兩個(gè) View 是需要 重疊在一起的,不然 效果 不對(duì)喲

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

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

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