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

iOS16适配指南之UIImage

作者头像
YungFan
发布于 2022-06-23 06:37:05
发布于 2022-06-23 06:37:05
1.1K00
代码可运行
举报
文章被收录于专栏:学海无涯学海无涯
运行总次数:0
代码可运行
  • SF Symbols 中增加了新的类别 Variable,其中的图标支持可变渲染。
  • UIImage 相应地增加了新的构造函数支持可变渲染。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Combine
import UIKit

class ViewController: UIViewController {
    // 可变色度
    lazy var variable: Double = 0 {
        didSet {
            // 新的构造函数,支持可变渲染
            let image = UIImage(systemName: "touchid", variableValue: variable, configuration: symbolConfig)
            imageView.image = image
        }
    }
    // 配置图标的渲染颜色
    let symbolConfig = UIImage.SymbolConfiguration(paletteColors: [.systemTeal, .systemGreen])
    var cancellable: [AnyCancellable] = []
    // Combine定时器
    let timer = Timer.publish(every: 0.2, on: .main, in: .common)
    
    lazy var imageView: UIImageView = {
        let imageView = UIImageView(image: UIImage(systemName: "touchid", variableValue: 0, configuration: symbolConfig))
        imageView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
        imageView.contentMode = .scaleAspectFit
        imageView.center = view.center
        return imageView
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(imageView)
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        // 动态调整Variable图标
        timer
            .autoconnect()
            .sink { [weak self] _ in
                guard let self = self else { return }
                switch self.variable {
                case 0:
                    self.variable = 0.2
                case 0.2:
                    self.variable = 0.4
                case 0.4:
                    self.variable = 0.6
                case 0.6:
                    self.variable = 0.8
                case 0.8:
                    self.variable = 1.0
                case 1.0:
                    self.variable = 0.9
                case 0.9:
                    self.variable = 0.7
                case 0.7:
                    self.variable = 0.5
                case 0.5:
                    self.variable = 0.3
                case 0.3:
                    self.variable = 0.1
                default:
                    self.variable = 0
                }
            }
            .store(in: &cancellable)
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS18适配指南之Symbol Animations
YungFan
2024/09/09
2020
iOS18适配指南之UIUpdateLink
YungFan
2024/09/09
3550
iOS17适配指南之UIContentUnavailableView(一)
YungFan
2023/07/24
5670
iOS17适配指南之UIContentUnavailableView(一)
iOS18适配指南之UITableView
YungFan
2024/09/27
3570
iOS开发之高性能数值计算利器Accelerate
在进行数值计算、音频处理或者图像分析时,性能往往是影响用户体验的关键因素。为了让开发者能更方便地利用底层硬件的高性能向量计算能力,Apple 提供了Accelerate框架。它封装了底层的 SIMD 指令集与高效的数学计算函数,可以用极少的代码实现高效、并行的计算操作,同时还能节省电量。Accelerate支持在 iOS、macOS、tvOS 与 watchOS 上运行。常用子模块如下。
YungFan
2025/05/17
570
iOS开发之高性能数值计算利器Accelerate
iOS17适配指南之UIImageView、UIButton
Symbol Animations 新特性使得按钮中使用的 SF Symbols 图标也可以呈现动画。
YungFan
2023/07/09
1.2K0
iOS16适配指南之Live Activity
介绍 一种显示在锁屏界面的特殊 Widget,但官方强调 Live Activity 与 Widget 并不完全相等,因为二者使用不同的机制进行更新。 可以通过 ActivityKit 来配置、启动、更新与终止 Live Activity,也可以通过远程通知更新 Live Activity,但二者在更新时的动态数据大小均不能超过 4 KB。 Live Activity 在锁屏上最多只能停留 12 小时,超过时间会自动停止运行。 开启 Live Activity 后,App 可以与 DynamicIslan
YungFan
2022/12/09
2.2K0
iOS16适配指南之UIPasteboard
iOS 16 中通过 UIPasteboard 获取剪贴板中的内容时,系统会弹出对话框提醒用户是否允许粘贴。如果不想显示该对话框,建议使用新增的 UIPasteControl 控件来读取剪贴板的内容。
YungFan
2022/07/17
3K0
iOS16适配指南之UINavigationItem
增加了类型为 UINavigationItem.ItemStyle 的属性style用于描述 UINavigationItem 在 UINavigationBar 上的布局,共有 3 种样式:navigator(默认样式),browser(浏览器样式)与editor(编辑器样式)。 // Created by YungFan import UIKit class ViewController: UIViewController { override func viewDidLoad() {
YungFan
2022/08/23
1.6K0
IOS 使用Core Image做单色调效果
1 import UIKit 2 import CoreImage 3 4 class ViewController:UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 let option = Dictionary(dictionaryLiteral: (kCIContextUseSoftwareRenderer, true)) 10 let context = CIContext(options:option) 11 let image = UIImage(named:“Pic1”) 12 let imageView = UIImageView(image:image) 13 14 let filter = CIFilter(name:“CIColorMonochrome”) 15 let ciImage = CIImage(image:image!) 16 let color = CIColor(red:0.8, green:0.6, blue:0.4) 17 filter?.setValue(color, forKey:kCIInputColorKey) 18 filter?.setValue(1.0, forKey:kCIInputIntensityKey) 19 filter?.setValue(ciImage, forKey:kCIInputImageKey) 20 21 let resltImage = filter?.outputImage 22 let outImage = context.createCGImage((filter?.outputImage)!, from: (resltImage?.extent)!) 23 imageView.image = UIImage(cgImage:outImage!) 24 self.view.addSubview(imageView) 25 } 26 }
用户5760343
2019/07/10
6640
iOS17适配指南之其他细节
UIView 增加了一个hoverStyle属性,可以设置鼠标移动到 UIView 之上的效果。
YungFan
2023/09/01
1K0
iOS17适配指南之UIViewController
YungFan
2023/07/09
9200
iOS17适配指南之UIViewController
IOS CAKeyFrameAnimation 实现动态位移
1 override func viewDidLoad() { 2 super.viewDidLoad() 3 // Do any additional setup after loading the view, typically from a nib. 4 5 let imageView = UIImageView(frame:CGRect(x:40, y:80, width:64, height:64)) 6 imageView.image = UIImage(named:“star”
用户5760343
2019/07/08
1.4K0
Swift-MVVM 简单演练(四)
Swift-MVVM 简单演练(一) Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(三) 前言 这一篇主要写微博的首页布局,及MVVM模式的体会。像微博这种自定义的Cell布局略显复杂一些,我们最好将其拆分出来各个不同的模块来处理比较好一些。不要像之前那样,所有的控件都写在一个cell里面,那样不好处理。虽然说总体上来说,是学习MVVM模式,但是架构都是基于项目而设立的。脱离业务谈什么模式本身就不是很好。凡事有法,但法无定式。依个人习惯去延伸就好。没必要非得说谁的代码就一定是错的。这
用户1890628
2018/05/10
2.4K0
iOS16适配指南之UIPageControl
水平方向支持从左到右与从右到左。 支持垂直方向,也分为从上到下与从下到上。 可以设置指示器与当前页的图片。 import UIKit class ViewController: UIViewController { lazy var pageControl: UIPageControl = { let pageControl = UIPageControl(frame: CGRect(x: 0, y: 0, width: 200, height: 500)) pag
YungFan
2022/06/30
7160
iOS16适配指南之UIMenu
UIMenu增加了属性preferredElementSize用于设置菜单显示时内部元素的尺寸,共有 3 种尺寸可选,分别为small、medium与large。
YungFan
2022/06/29
9040
iOS面试题-UI篇
面试题持续整理更新中,如果你正在面试或者想一起进阶,不妨添加一下交流群1012951431一起交流。
会写bug的程序员
2020/06/29
2.3K0
iOS面试题-UI篇
iOS17适配指南之UIPageControl
YungFan
2023/07/24
4930
iOS17适配指南之UIPageControl
AVKit框架详细解析(三) —— 基于视频播放器的画中画实现(二)
源码 1. Swift 接着就是源码了 1. AppDelegate.swift import AVKit import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.Laun
conanma
2021/09/04
2K0
【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725
韩曙亮
2023/03/27
3.7K0
【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
推荐阅读
相关推荐
iOS18适配指南之Symbol Animations
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验