Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS18适配指南之融合SwiftUI

iOS18适配指南之融合SwiftUI

作者头像
YungFan
发布于 2025-02-10 05:28:11
发布于 2025-02-10 05:28:11
6600
代码可运行
举报
文章被收录于专栏:学海无涯学海无涯
运行总次数:0
代码可运行

介绍

UIKit 进一步融合 SwiftUI,UIView 动画可以使用 SwiftUI 动画。

使用

  • 代码。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import SwiftUI
import UIKit

class ViewController: UIViewController {
    lazy var redView: UIView = {
        let view = UIView(frame: CGRect(x: 0, y: 50, width: 100, height: 100))
        view.backgroundColor = .red
        return view
    }()
    lazy var greenView: UIView = {
        let view = UIView(frame: CGRect(x: 120, y: 50, width: 100, height: 100))
        view.backgroundColor = .green
        return view
    }()
    lazy var blueView: UIView = {
        let view = UIView(frame: CGRect(x: 240, y: 50, width: 100, height: 100))
        view.backgroundColor = .blue
        return view
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(blueView)
        view.addSubview(greenView)
        view.addSubview(redView)
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        animate()
    }
}

extension ViewController {
    // MARK: UIView动画
    func animate() {
        // 使用SwiftUI动画
        // 第1个
        UIView.animate(SwiftUI.Animation.linear(duration: 1.0)) {
            self.redView.center.y = 300
        }
        // 第2个
        UIView.animate(SwiftUI.Animation.easeInOut(duration: 1.0).delay(1.5).speed(2)) {
            self.greenView.center.y = 300
        }
        // 第3个
        UIView.animate(Animation.spring(duration: 2.0, bounce: 0.7, blendDuration: 0)) {
            self.blueView.center.y = 300
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS17适配指南之弹簧动画
YungFan
2023/07/09
6660
iOS17适配指南之弹簧动画
iOS18适配指南之UIUpdateLink
YungFan
2024/09/09
3340
iOS14开发-动画
动画往往能起到增强用户体验的作用,在 iOS 开发中,我们可以使用 UIKit 提供的动画来实现,简称 UIView 动画。UIView 动画实质上是对 Core Animation(核心动画)的封装,提供简洁的动画 API。
YungFan
2021/04/23
8470
iOS18适配指南之UITrait
系统能够自动监听并且处理特征值的改变,不再需要UITraitChangeObservable协议中的特征变化注册方法registerForTraitChanges()。
YungFan
2025/02/10
610
iOS18适配指南之UIViewController
增加了类型为UIViewController.Transition的preferredTransition属性,可以实现特殊的转场效果,共有 5 种效果,分别为zoom、coverVertical、flipHorizontal、crossDissolve与partialCurl。
YungFan
2024/09/09
4540
iOS17适配指南之其他细节
UIView 增加了一个hoverStyle属性,可以设置鼠标移动到 UIView 之上的效果。
YungFan
2023/09/01
1K0
iOS18适配指南之UITrait
系统能够自动监听并且处理特征值的改变,不再需要UITraitChangeObservable协议中的特征变化注册方法registerForTraitChanges()。
YungFan
2024/09/13
2410
iOS17适配指南之UITrait
UITraitEnvironment 协议中的traitCollectionDidChange()方法被废弃,监听特征改变需要使用UITraitChangeObservable协议中的相应的特征变化注册方法。
YungFan
2023/11/07
9460
iOS17适配指南之UITrait
iOS18适配指南之Symbol Animations
YungFan
2024/09/09
1860
iOS17适配指南之UIImageView、UIButton
Symbol Animations 新特性使得按钮中使用的 SF Symbols 图标也可以呈现动画。
YungFan
2023/07/09
1.2K0
高效学习iOS —— Stroke和路径动画
先添加需要的代码,这里需要将storyboard的ViewController换成
CC老师
2022/01/14
1.9K0
高效学习iOS —— Stroke和路径动画
iOS17适配指南之UIFont.TextStyle、UITextField
增加了新的超大字体样式extraLargeTitle与extraLargeTitle2。
YungFan
2023/07/09
8580
iOS17适配指南之UIFont.TextStyle、UITextField
UIKit Dynamics:开始入门 —《Graphics & Animation系列一》
翻译自raywenderlich网站iOS教程Graphics & Animation系列 介绍 UIKit Dynamics是一个集成到UIKit中的完整物理引擎。它允许您通过添加诸如重力,附件(弹簧)和力量等行为来创建感觉真实的界面。您定义了您希望界面元素采用的物理特征,动态引擎负责其余部分。
Charlie_W
2018/10/19
2K0
UIKit Dynamics:开始入门 —《Graphics & Animation系列一》
UIKit Dynamics 置身真实世界
前言: iOS的设计目标鼓励您创建数字接口(digital interface),对触摸,手势和方向的变化做出反应,就好像它们是物理对象而不仅仅是简单的像素集合。可以使用户可以通过皮肤深层的自身形态与界面更深层次的联系。 工具介绍: UIKit Dynamics是整合到UIKit中的完整物理引擎。它允许您通过添加重力,附件(弹簧)和力等行为来创建感觉真实的界面。您定义了您希望您的界面元素采用的物理特征,动力学引擎将照顾其余部分。 Motion Effects使您可以创建炫酷视差效果。基本上,您可以利用手
Dwyane
2018/05/22
1.3K0
IOS移动开发从入门到精通 视图UIView、层CALayer(1)
1个UIWindow 或 UIView 1、设置背景色 import UIKit class ViewController:UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view,typically from a nib. let view = UIView(frame:CGRect(x:40, y:80,width:240, height:240)) view.backgroundColor = UIColor.black view.clipsToBounds=true self.view.addSubview(view) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
用户5760343
2019/07/05
8160
iOS16适配指南之UIFont
增加了 3 种新的宽度样式:compressed、condensed与expanded,加上默认的standard,目前 UIFont 共有 4 种字体宽度。宽度大小关系为:expanded > standard > condensed > compressed。
YungFan
2022/09/27
4570
iOS17适配指南之TipKit
YungFan
2023/09/06
6290
iOS17适配指南之TipKit
IOS 动画 动态变换背景色和大小
1 import UIKit 2 3 class ViewController:UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 let rect = CGRect(x:40, y:80, width:240, height: 9 l
用户5760343
2019/07/08
1.2K0
IOS 动画 动态变换背景色和大小
Swift动画 —— 进度条
首先要做的就是用CAShapeLayer画一个圆。这里先创建一个路径,把圆的中心放在视图的中心,半径设为100,然后设置起始角度和结束角度,并将clockwise设为true。
CC老师
2022/01/14
2.8K0
Swift动画 —— 进度条
iOS_Custom Transition Animation 自定义转场动画
想要在 push 和 pop viewController 时使用自定义的转场动效,需要设置self.naviagtionController.delegate, 并实现UINavigationControllerDelegate的一个方法:
mikimo
2023/10/18
3890
iOS_Custom Transition Animation 自定义转场动画
相关推荐
iOS17适配指南之弹簧动画
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验