动画| 类似Windows的气泡屏保效果

本文详细介绍一种类似windows的气泡碰撞效果的屏幕保护动画。

效果展示

实现步骤解析:

  1. 在一个for循环中随机生成三个圆的中心点。确保这些中心点彼此之间没有重叠,且位于屏幕内部。
    // 不重叠
    BOOL containsPoint = NO;
    for (int j = 0; j < i; j++) {
        if (CGRectContainsPoint(buttons[j].frame, CGPointMake(cx, cy))) {
            containsPoint = YES;
            break;
        }
    }
    if (!containsPoint && cx > BALL_WIDTH && cy > BALL_WIDTH && cx < SCREEN_WIDTH_NEW - BALL_WIDTH && cy < SCREEN_HEIGHT_NEW - BALL_WIDTH) {
        // 创建按钮
    }

有时候在打印CG类型的变量时,无法直接输出。我们可以利用UIKit中的API方便地实现字符串和CG变量之间的转换。同时,NSValue可以封装许多CG变量,并将其保存到数组中。