- 博客(9)
- 收藏
- 关注
原创 iOS开发之弹窗管理
千淘万漉虽辛苦,吹尽狂沙始到金。”在这快速变化的互联网行业,身边的朋友有的选择了勇敢创业,有的则在技术的海洋中默默耕耘。时常在深夜反思,作为一个开发者,我们的价值何在?答案或许就在那行代码中,润物细无声。以下是我在日常开发中封装的一个弹窗管理工具——,希望能为大家提供一些灵感和帮助。在移动应用开发中,弹窗作为一种重要的用户交互方式,使用频率非常高。无论是提示信息、广告展示,还是操作确认,弹窗都扮演着重要角色。然而,如果弹窗的显示逻辑缺乏合理控制,可能会出现弹窗重叠、顺序混乱等问题,极大影响用户体验。
2024-06-18 09:20:06 487
原创 使用AVPlayer自定义支持全屏的播放器(五)—Swift重构版本
前言很早之前开源了一个简单的视频播放器,由于年久失修,效果惨目忍睹,最近特意花时间对其进行了深度重构。旧版本后期不再维护,新版本使用Swift实现,后续会增加更多功能。不想看文字的请自行下载代码------>>>CLPlayer旧版本 VS 重构版本1.新版本使用Swift,旧版本使用Objective-C2.新版本采用自定义转场实现全屏,旧版本使用旋转屏幕3.新版本不需要手动销毁播放器4.新版本修复了老版本遗留bug5.新版本降低了代码耦合性6.新版本增加了倍数播放,切.
2021-12-28 17:06:31 1864
原创 iOS开发之蜂窝布局—Swift
前言最近项目中用到了类似蜂窝的六边形布局,在这里分享出来抛砖引玉,供大家参考学习。本文提供了2种思路实现效果,第一种方式使用UICollectionView实现,第二种方式使用UIScrollView实现,两种方式底层核心思想是一致的。效果图一、UICollectionView由于UICollectionView自身提供很多属性,所以只需要自定义UICollectionViewFlowLayout布局,内部计算每个控件的位置就可以很轻松的实现。核心代码override func prepare
2021-08-19 09:19:28 254
原创 iOS开发之GIF转MP4—Swift
前言最近遇到需要将gif转化为mp4的问题,网上找的在线转换限制太多,索性就自己写了一个工具APP。文章末尾有开源代码和打包好的APP,如有需要请自行下载。效果图核心代码来源import ImageIO#if os(iOS)import MobileCoreServices#elseif os(OSX)import CoreServices#endifclass GIF { private let frameDelayThreshold = 0.02 privat
2021-05-27 15:44:55 495 1
原创 iOS自定义弹窗之翻牌动画—Swift
前言项目中做的一个Swift版本的翻牌动画,在自定义Window弹窗基础上,使用transition动画实现。效果图1.弹窗部分弹窗考虑到解耦和使用便捷,采取自定义Window来实现,所有弹窗由一个可销毁单例来统一管理,这样可以很容易管理每个弹窗,也方便扩展其他类型的弹窗,当所有弹窗都全部销毁后,单例自行销毁弹窗核心代码//MARK: - 弹窗管理者@objcMembers class CLPopupManager: NSObject { private static var man
2020-12-03 11:50:02 279
原创 iOS开发之转盘菜单—Swift
前言使用Swift实现的转盘菜单,主要用到UIBezierPath、CALayer遮罩绘制扇形UIView,CATransform3DMakeRotation实现旋转动画。代码设计使用默认configureCallback回调方便创建和设置基本属性,参考UITableView代理和数据源模式,支持AutoLayout和Frame。效果图1.遮罩绘制扇形View计算扇形曲线位置,通过CALayer的mask属性绘制出扇形UIView核心代码func setMaskLayer(_ startAng
2020-12-03 11:48:13 430
原创 iOS使用脚本跟随工程代码动态生成Framework
前言在开发中,经常需要将代码打包成为Framework,每次都手动配置合并十分麻烦,这里提供一种使用脚本动态生成Framework的方法。使用脚本可以动态跟随工程代码,随时打包,简单方便1.新建Framework专用Target,设置打包相关配置第一步在工程中新建一个Target,选中Framework,用来打包Framework第二步选中打包Framework对应Target,找到...
2019-12-13 01:11:20 256
原创 iOS开发之UITableViewCell可暂停倒计时
前言最近开发中,用到了UITableViewCell倒计时功能,这里将这部分功能分离出来,供大家参考。1.原理考虑到APP性能,这里只创建一个定时器,定时刷新当前正在显示的UITableViewCell,使用Model记录剩余倒计时时间和当前UITableViewCell是否暂停。2.核心代码创建定时器考虑到方便和不需要销毁,这里定时器使用GCD—>GCD定时器封装OC&...
2019-12-13 01:07:55 307
原创 iOS奇思妙想之使用block替代通知(二)
#前言在之前的文章iOS奇思妙想之使用block替代通知(一)中,自己实现了通知功能。在之前的实现中,使用了Runtime进行动态绑定,虽然达到了最后的效果,但是也会增加耦合。#解决耦合既然动态绑定属性会增加耦合,那么我们可以考虑不让观察者动态绑定属性来实现。这里参考之前NSMapTable,将对应属性存入,在调用的时候再根据不同的Key动态获取。####1.添加监听根据不同的观察者和监...
2019-12-13 01:04:30 119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人