首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >iOS18适配指南之Symbol Animations

iOS18适配指南之Symbol Animations

作者头像
YungFan
发布2025-02-10 13:29:19
发布2025-02-10 13:29:19
1920
举报
文章被收录于专栏:学海无涯学海无涯

介绍

  • WWDC23 推出的 Symbol Animations 使得 SF Symbols 中的图标可以呈现丰富多彩的动画。
  • UIImageView 通过addSymbolEffect()方法增加动画效果。
  • WWDC24 中 Symbol Animations 新增了动画效果rotatewigglebreathe以及控制方式periodic

使用

  • rotate 效果。
代码语言:javascript
复制
import UIKit

class ViewController: UIViewController {
    lazy var imageView: UIImageView = {
        let imageView = UIImageView(image: UIImage(systemName: "heart.fill")?.withTintColor(.red, renderingMode: .alwaysOriginal))
        imageView.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
        imageView.contentMode = .scaleAspectFit
        imageView.center = view.center
        return imageView
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(imageView)

        // iOS18新增
        imageView.addSymbolEffect(.rotate, options: .repeat(.periodic(3, delay: 1)), animated: true) // periodic控制方式:重复执行3次,延迟1s
    }
}

rotate.gif

  • wiggle 效果。
代码语言:javascript
复制
import UIKit

class ViewController: UIViewController {
    lazy var imageView: UIImageView = {
        let imageView = UIImageView(image: UIImage(systemName: "heart.fill")?.withTintColor(.red, renderingMode: .alwaysOriginal))
        imageView.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
        imageView.contentMode = .scaleAspectFit
        imageView.center = view.center
        return imageView
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(imageView)

        // iOS18新增
        imageView.addSymbolEffect(.wiggle, options: .repeat(.continuous), animated: true)
    }
}

wiggle.gif

  • breathe 效果。
代码语言:javascript
复制
import UIKit

class ViewController: UIViewController {
    lazy var imageView: UIImageView = {
        let imageView = UIImageView(image: UIImage(systemName: "heart.fill")?.withTintColor(.red, renderingMode: .alwaysOriginal))
        imageView.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
        imageView.contentMode = .scaleAspectFit
        imageView.center = view.center
        return imageView
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(imageView)

        // iOS18新增
        imageView.addSymbolEffect(.breathe, options: .repeat(.continuous), animated: true)
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档