對(duì)CRToast 重力效果略有不滿——2018-01-11

//#import "CRToastConfig.m" #770

- (CGPoint)inCollisionPoint1 {
    CGFloat x;
    CGFloat y;
    CGFloat factor = self.presentationType == CRToastPresentationTypeCover ?: 2;
    BOOL push = self.presentationType == CRToastPresentationTypePush;
    switch (self.inAnimationDirection) {
        case CRToastAnimationDirectionTop:
            x = 0;
            //y = factor*(CGRectGetHeight(self.notificationViewAnimationFrame1)+(push ? -4*kCRCollisionTweak : kCRCollisionTweak));
            y = factor*(CGRectGetHeight(self.notificationViewAnimationFrame1)+(push ? 0 : 0));
            break;
        case CRToastAnimationDirectionLeft:
            //x = (factor*CGRectGetWidth(self.notificationViewAnimationFrame1))+(push ? -5*kCRCollisionTweak : 2*kCRCollisionTweak);
            x = (factor*CGRectGetWidth(self.notificationViewAnimationFrame1))+(push ? 0 : 3*kCRCollisionTweak);
            y = CGRectGetHeight(self.notificationViewAnimationFrame1);
            break;
        case CRToastAnimationDirectionBottom:
            x = CGRectGetWidth(self.notificationViewAnimationFrame1);
            //y = -((factor-1)*CGRectGetHeight(self.notificationViewAnimationFrame1))-(push ? -5*kCRCollisionTweak : kCRCollisionTweak);;
            y = -((factor-1)*CGRectGetHeight(self.notificationViewAnimationFrame1))-(push ? 0 : 2*kCRCollisionTweak);
            break;
        case CRToastAnimationDirectionRight:
            //x = -((factor-1)*CGRectGetWidth(self.notificationViewAnimationFrame1))-(push ? -5*kCRCollisionTweak : 2*kCRCollisionTweak);;
            x = -((factor-1)*CGRectGetWidth(self.notificationViewAnimationFrame1))-(push ? 0 : 3*kCRCollisionTweak);
            y = 0;
            break;
    }
    return CGPointMake(x, y);
}

- (CGPoint)inCollisionPoint2 {
    CGFloat x;
    CGFloat y;
    CGFloat factor = self.presentationType == CRToastPresentationTypeCover ?: 2;
    BOOL push = self.presentationType == CRToastPresentationTypePush;
    switch (self.inAnimationDirection) {
        case CRToastAnimationDirectionTop:
            x = CGRectGetWidth(self.notificationViewAnimationFrame1);
            //y = factor*(CGRectGetHeight(self.notificationViewAnimationFrame1)+(push ? -4*kCRCollisionTweak : kCRCollisionTweak));
            y = factor*(CGRectGetHeight(self.notificationViewAnimationFrame1)+(push ? 0 : 0));
            break;
        case CRToastAnimationDirectionLeft:
            //x = (factor*CGRectGetWidth(self.notificationViewAnimationFrame1))+(push ? -5*kCRCollisionTweak : 2*kCRCollisionTweak);
            x = (factor*CGRectGetWidth(self.notificationViewAnimationFrame1))+(push ? 0 : 3*kCRCollisionTweak);
            y = 0;
            break;
        case CRToastAnimationDirectionBottom:
            x = 0;
            //y = -((factor-1)*CGRectGetHeight(self.notificationViewAnimationFrame1))-(push ? -5*kCRCollisionTweak : kCRCollisionTweak);
            y = -((factor-1)*CGRectGetHeight(self.notificationViewAnimationFrame1))-(push ? 0 : 2*kCRCollisionTweak);
            break;
        case CRToastAnimationDirectionRight:
            //x = -((factor-1)*CGRectGetWidth(self.notificationViewAnimationFrame1))-(push ? -5*kCRCollisionTweak : 2*kCRCollisionTweak);
            x = -((factor-1)*CGRectGetWidth(self.notificationViewAnimationFrame1))-(push ? 0 : 3*kCRCollisionTweak);
            y = CGRectGetHeight(self.notificationViewAnimationFrame1);
            break;
    }
    return CGPointMake(x, y);
}
?著作權(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)容