LGAlertView快速上手:10行代码打造你的第一个自定义弹窗(Objective-C与Swift)
【免费下载链接】LGAlertViewCustomizable implementation of UIAlertViewController, UIAlertView and UIActionSheet. All in one. You can customize every detail. Make AlertView of your dream! :)项目地址https://gitcode.com/gh_mirrors/lg/LGAlertView点击查看免费下载LGAlertView是一款功能强大的 iOS自定义弹窗开源库用一个 API 统一替代UIAlertController、UIAlertView和UIActionSheet支持样式、颜色、圆角、阴影、毛玻璃等几乎每个细节的定制并且同时提供Objective-C 与 Swift双语言接口。本文带你从零开始几分钟内上手这个梦幻弹窗库。一、LGAlertView 是什么为什么选择它系统自带的弹窗美观但改不动标题字体、按钮颜色、圆角大小……你想改的地方它一个都不让你碰。LGAlertView 解决的正是这个问题全细节可定制颜色、字体、圆角、阴影、动画时长、毛玻璃背景……上百个属性随意调三种弹窗合一Alert居中弹窗、ActionSheet底部操作表、内嵌输入框/进度条/任意自定义视图⚡双风格引擎内置LGAlertViewStyleAlert与LGAlertViewStyleActionSheet两种风格枚举定义见 LGAlertView.h回调三通道Block、Delegate、NSNotification 三种方式监听按钮事件怎么舒服怎么来低版本兼容2.4.x 版本最低支持 iOS 12.0见 LGAlertView.podspec版本最低 iOS 版本1.0.06.02.1.08.02.4.1 及以上当前 2.4.412.0二、安装 LGAlertView三种最快方式方式一CocoaPods推荐在Podfile中添加两行platform :ios, 12.0 use_frameworks! pod LGAlertView执行pod install后Swift 项目import LGAlertViewObjective-C 项目#import LGAlertView/LGAlertView.h即可。方式二源码集成克隆仓库后将 LGAlertView/ 目录拖入你的 Xcode 工程git clone https://gitcode.com/gh_mirrors/lg/LGAlertView然后在使用处导入#import LGAlertView.h。Swift 项目需创建 Bridging Header 并写入同样的导入语句。方式三Carthage在Cartfile中加入github LGLibs/LGAlertView构建后把产物添加到工程即可。三、10行代码打造你的第一个自定义弹窗安装完成后核心流程只有三步创建 → 配置回调 → 展示。Objective-C 版LGAlertView *alertView [[LGAlertView alloc] initWithTitle:提示 message:确定要退出登录吗 style:LGAlertViewStyleAlert buttonTitles:[确定] cancelButtonTitle:取消 destructiveButtonTitle:nil]; alertView.actionHandler ^(LGAlertView *alertView, NSUInteger index, NSString *title) { NSLog(用户点击了%, title); }; [alertView showAnimated:YES];Swift 版let alertView LGAlertView(title: 提示, message: 确定要退出登录吗, style: .alert, buttonTitles: [确定], cancelButtonTitle: 取消, destructiveButtonTitle: nil) alertView.actionHandler { _, _, title in print(用户点击了\(title ?? )) } alertView.show(animated: true)就这么简单destructiveButtonTitle传入非 nil 文案时按钮会显示为系统风格的红色危险按钮如删除。小贴士属性只能在show之前修改展示后再改就失效了记得先配置完再弹出。四、ActionSheet 风格一键切换底部操作表把style参数换成LGAlertViewStyleActionSheet同一个对象立即变成从底部弹出的操作表按钮自动加高默认 56pt还自动适配 iPad 和刘海屏安全区。若想让按钮避开底部安全区只需一行[LGAlertView appearance].cancelButtonOffsetY window.safeAreaInsets.bottom;五、自定义外观appearance 一次设置全局生效LGAlertView 遵循UIAppearance协议在AppDelegate中统一设置后整个 App 的弹窗都会使用该风格无需每个弹窗单独配置[LGAlertView appearance].tintColor [UIColor greenColor]; // 按钮主题色 [LGAlertView appearance].cancelOnTouch NO; // 点遮罩不关闭 [LGAlertView appearance].layerCornerRadius 20.0; // 圆角 [LGAlertView appearance].animationDuration 0.3; // 动画时长单个按钮想特别对待用索引精准定制属性定义见 LGAlertViewButtonProperties.h[alertView setButtonPropertiesAtIndex:0 handler:^(LGAlertViewButtonProperties *properties) { properties.titleColor [UIColor yellowColor]; properties.image [UIImage imageNamed:super_icon]; }];六、内置内容输入框、进度条、任意视图LGAlertView 不只是文字按钮它还内置了这几类富内容实现分别位于 LGAlertViewTextField.h、LGAlertViewCell.m 等文件中场景初始化方法典型用途纯文本initWithTitle:…普通提示/确认输入框initWithTextFieldsAndTitle:…弹窗内输入名称、密码加载中initWithActivityIndicatorAndTitle:…网络请求等待进度条initWithProgressViewAndTitle:…下载进度可动态setProgress:任意视图initWithViewAndTitle:…日期选择器、自定义 XIB以输入框为例初始化时即可通过闭包配置每个输入框LGAlertView *alertView [[LGAlertView alloc] initWithTextFieldsAndTitle:输入 message:请输入用户名 numberOfTextFields:1 textFieldsSetupHandler:^(UITextField *textField, NSUInteger index) { textField.placeholder 用户名; } buttonTitles:[保存] cancelButtonTitle:取消 destructiveButtonTitle:nil];七、毛玻璃背景让弹窗更有质感设置coverBlurEffect让背后的页面瞬间模糊科技感拉满alertView.coverBlurEffect [UIBlurEffect effectWithStyle:UIBlurEffectStyleRegular]; alertView.coverColor [UIColor colorWithWhite:0.9 alpha:0.5]; // 模糊色下图正是 Demo 中模糊弹窗演示所用的页面背景图来自 TableViewControllerBlurredAlert.m 的backgroundView设置八、按钮回调处理Block / Delegate / 通知三选一方式适用场景入口Block最常用局部、轻量回调actionHandler/cancelHandler/destructiveHandlerDelegate集中管理生命周期事件LGAlertViewDelegate协议共 10 个可选方法Notification跨模块解耦监听如LGAlertViewActionNotification等 12 个常量Block 方式中若需访问self务必用弱引用避免循环引用完整回调定义见 LGAlertView.h__weak typeof(self) wself self; alertView.cancelHandler ^(LGAlertView *alertView) { [wself doSomething]; };九、项目结构与 Demo 项目导览仓库结构清晰源码与示例一目了然LGAlertView/ # 核心源码10 个 .h/.m 文件 ├── LGAlertView.h/.m # 主类全部属性与初始化方法 ├── LGAlertViewButton* # 按钮与按钮属性 ├── LGAlertViewCell* # 弹窗单元格 ├── LGAlertViewTextField* # 输入框 ├── LGAlertViewWindow* # 独立 Window 管理 └── ... Demo/LGAlertViewDemo/ # 可运行的示例工程 Framework/ # Framework 打包工程最推荐的新手路径打开 Xcode用 Demo 工程 跑一遍 TableViewControllerAlert.m 中列出的 30 个场景——从 4 按钮弹窗、图标按钮、长文本自适应到 Transition 弹窗无缝切换每个场景都是现成可用的代码片段照着抄就能上手。十、常见问题速查弹窗被状态栏挡住调整windowLevel属性默认LGAlertViewWindowLevelAboveStatusBar见 LGAlertView.h按钮想禁用setButtonEnabled:NO atIndex:0或cancelButtonEnabled NO点按钮后不自动关闭设置dismissOnAction NO手动调用dismiss想要自定义动画监听LGAlertViewShowAnimationsNotification或实现 Delegate 的showAnimationsForAlertView:duration:弹窗切换太生硬调用transitionToAlertView:实现无缝过渡LGAlertView 的 API 设计哲学就一句话系统弹窗给不了你的定制这里都有。现在就打开 Demo 工程打造属于你自己的梦幻弹窗吧赞分享【免费下载链接】LGAlertViewCustomizable implementation of UIAlertViewController, UIAlertView and UIActionSheet. All in one. You can customize every detail. Make AlertView of your dream! :)项目地址https://gitcode.com/gh_mirrors/lg/LGAlertView点击查看免费下载相关推荐如何快速上手BasePopup10个实用技巧帮你打造完美弹窗如何快速上手BasePopup10个实用技巧帮你打造完美弹窗 BasePopup是一个专为Android开发者设计的强大弹窗库能够帮助开发者快速构建各种样式移动开发UI组件10分钟快速上手Zag.js打造你的第一个可访问组件10分钟快速上手Zag.js打造你的第一个可访问组件 想要构建既美观又具备完美可访问性的UI组件吗Zag.js就是你的终极解决方案这个强大的JavaScr前端UI组件10分钟快速上手ARKit-CoreLocation打造你的第一个AR导航应用 ARKit CoreLocation是一个革命性的开源框架它将ARKit的高精度增强现实能力与CoreLocation的地理定位功能完美结合。通过这个强大的工VR/AR/MR移动开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

银行卡BIN码为什么用JSON格式?轻量级金融数据方案

银行卡BIN码为什么用JSON格式?轻量级金融数据方案

简介:本资源是一份面向前端开发者与支付系统工程师的银行卡BIN码验证工具集,解决银行卡号前端实时识别、发卡行匹配及卡类型判断等实际问题。压缩包内含1个核心JSON文件(bankbin.json),以标准键值对结构存储超千条国内…

2026/10/15 18:23:37 阅读更多 →
ASP.NET Core值班管理系统实战:排班、换班与统计全解析

ASP.NET Core值班管理系统实战:排班、换班与统计全解析

简介:这是一套基于ASP.NET WebForms开发的在线值班管理系统,面向需要实现单位内部排班、值班登记、调班审批、历史查询等功能的中小企业、行政部门或开发学习者,也可作为高校课程设计题目。资源压缩包共77个文件、大小仅8.39MB,主…

2026/10/15 18:23:37 阅读更多 →
精通Windows API:Win32编程实操源码包,从消息循环到二次开发

精通Windows API:Win32编程实操源码包,从消息循环到二次开发

简介:面向具备C基础、希望在Windows平台上深入系统开发的程序员,这套源码包以《精通Windows API——函数、接口、编程实例》为蓝本,覆盖窗口管理、消息循环、动态链接库、COM接口和文件操作等156个实际应用场景。压缩包共1789个文件&#xff…

2026/10/15 18:23:37 阅读更多 →

最新新闻

SAP系统拆分:注意事项与规避做法(下篇)

SAP系统拆分:注意事项与规避做法(下篇)

上篇梳理了拆分项目的风险:模块集成带来的牵连、数据关联被切断、自开发处理工作量被低估、停机窗口受交易时间表约束、合规敞口放大、跨部门协同吃紧、测试被压缩,以及源系统遗留数据的处理。 本篇说明相应的规避做法,按启动前、执行中、上线…

2026/10/15 19:05:56 阅读更多 →
豆包工作上线新功能,支持跨AI产品一键导入已有配置

豆包工作上线新功能,支持跨AI产品一键导入已有配置

近期,豆包工作持续更新,上线“数据导入与同步”功能,支持从其他AI产品一键导入数据,并推出“在新对话中继续”、消息注释和对话摘要侧栏等能力,进一步优化工作任务中的对话体验。据介绍,豆包工作的“数据导…

2026/10/15 19:05:56 阅读更多 →
氧化锆陶瓷电极原理是什么?氧化锆陶瓷电极精密加工厂家

氧化锆陶瓷电极原理是什么?氧化锆陶瓷电极精密加工厂家

氧化锆陶瓷电极之所以能在氧传感器、固体氧化物燃料电池和高温电化学装置中发挥关键作用,根本原因在于其独特的氧离子导电机制。很多用户搜索“氧化锆陶瓷电极原理是什么”,同时也希望找到氧化锆陶瓷电极精密加工厂家。一、氧化锆陶瓷的晶体结构与氧空位…

2026/10/15 19:05:56 阅读更多 →
Java UDP网络编程实战:从原理到C/S通信案例

Java UDP网络编程实战:从原理到C/S通信案例

1. 为什么我选择用UDP做这个C/S通信案例1.1 从一次局域网调试说起前阵子帮一个做物联网设备的朋友排查问题,他的设备端每隔一秒往服务器发一次状态心跳,用的是TCP长连接。设备数量一上来,服务器端就出现大量连接堆积,资源占用高得…

2026/10/15 19:05:56 阅读更多 →
C# USB摄像头稳定录制方案:AForge+FFmpeg工业级实践

C# USB摄像头稳定录制方案:AForge+FFmpeg工业级实践

简介:本资源是一份面向C#初学者与桌面应用开发者的USB摄像头调用实战项目,聚焦于Windows平台下视频录制与单帧图像保存的核心功能实现。资源提供DirectShow与Media Foundation双框架的代码实践路径,涵盖设备枚举、滤镜图构建、媒体流捕获、文…

2026/10/15 19:05:56 阅读更多 →
【ESP32笔记】ESP中的分区表

【ESP32笔记】ESP中的分区表

本节目标:看懂分区表 CSV 的每一列,会给工程添加自定义分区,并用 esp_partition API 完成擦除、写入、读取一、本节要解决的问题 ESP32 的程序不是"整个 bin 一股脑烧到某个固定地址",而是把整块 flash 划分成多个分区&…

2026/10/15 19:04:55 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →