对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);
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容