多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Anchorage快速上手指南:CocoaPods、Carthage、SPM三种安装方式一步到位(附Demo)

Anchorage快速上手指南:CocoaPods、Carthage、SPM三种安装方式一步到位(附Demo) Anchorage快速上手指南:CocoaPods、Carthage、SPM三种安装方式一步到位(附Demo)【免费下载链接】AnchorageA collection of operators and utilities that simplify iOS layout code.项目地址: https://gitcode.com/gh_mirrors/an/AnchorageAnchorage 是一款轻量级 iOS 布局库通过直观的 Swift 运算符把繁琐的 Auto Layout 约束代码简化为几行表达式。本文带你快速完成 Anchorage 的安装——覆盖 CocoaPods、Carthage、Swift Package ManagerSPM三种方式并运行内置 Demo 项目10 分钟即可体验布局简化效果 为什么选择 Anchorage写 Auto Layout 时你是否厌倦过这样的代码NSLayoutConstraint(item: view, attribute: .top, relatedBy: .equal, toItem: container, attribute: .top, multiplier: 1, constant: 8)Anchorage 构建在 Apple 官方NSLayoutAnchorAPI 之上核心实现在 Source/NSLayoutAnchorMultiplierConstraints.swift把同样的约束写成view.topAnchor container.topAnchor 8每个表达式直接返回已激活的NSLayoutConstraint一行代码即可完成布局。它支持 iOS、macOS、tvOS 三端要求 Swift 4.0主源码仅集中在 Source 目录下的几个文件中体积非常小巧。安装方式一CocoaPods 一键安装步骤CocoaPods 是最省事的方式在 Anchorage.podspec 中Anchorage 已声明最低部署版本为 iOS 9.0 / tvOS 9.0 / macOS 10.11。在项目根目录的Podfile中添加pod Anchorage在终端执行pod install完成后用.xcworkspace文件打开工程。在代码中import Anchorage即可开始使用。安装方式二Carthage 引入 Anchorage 最快配置如果你使用 Carthage 管理依赖在Cartfile中添加github Rightpoint/Anchorage终端执行carthage update构建框架。把生成的Anchorage.framework拖入 Xcode 工程并勾选 Target 即可。安装方式三SPMSwift Package Manager添加 AnchorageAnchorage 通过 Package.swift 原生支持 SPMswift-tools-version 5.1无需任何第三方插件图形界面Xcode → File → Add Package Dependencies… → 添加本地或远程包地址选择Anchorage库产品。手动本地使用先把仓库克隆到本地git clone https://gitcode.com/gh_mirrors/an/Anchorage然后在你的Package.swift中通过.package(path: Anchorage)引用依赖产品名同为Anchorage其源码路径已固定为 Source 目录。运行 Demo10 分钟体验 Anchorage 布局效果 仓库自带完整的示例工程 AnchorageDemo打开 Anchorage.xcodeproj你会看到 5 个现成的 SchemeScheme用途AnchorageDemo运行 iOS 示例 AppAnchorage-iOS / Anchorage-macOS / Anchorage-tvOS构建三端框架RunAllTests一键跑完全部测试Demo 主入口是 AnchorageDemo/RootViewController.swift内置 5 个可交互的 Cell源码位于 AnchorageDemo/Cells/ 目录点击任意一行即可动态调整约束并看到布局动画EdgeContainedLabelCell边距inset内嵌布局MinimumWidthViewCellwidthAnchor 100最小宽度约束ToggleActiveHeightCell动态启用/停用高度约束EqualSpaceViewCell多视图等间距排列AnimatableConstraintCell约束动画过渡选择AnchorageDemoScheme选一台模拟器运行就能看到上述效果。想本地验证构建流程的话仓库 scripts 目录提供了自动化脚本例如scripts/iOS_demo_Swift.sh会执行 iOS Demo 的 clean buildscripts/iOS_Swift.sh则跑完整测试需传入 iOS 版本与 Swift 版本两个参数。常用运算符速查表安装完成后这几行就能覆盖 90% 的布局需求// 对齐按钮距容器左边 12 pt button.leadingAnchor container.leadingAnchor 12 // 尺寸固定宽高 imageView.sizeAnchors CGSize(width: 100, height: 200) // 四边内嵌一次约束全部边缘 imageView.edgeAnchors container.edgeAnchors UIEdgeInsets(top: 5, left: 10, bottom: 15, right: 20) // 优先级~ 指定约束优先级枚举定义见 Source/Priority.swift view.centerXAnchor container.centerXAnchor 20 ~ .low⚠️ 两个实用提示编译时间运算符重载会略微增加编译耗时可用//、//、//替代、、提速。translatesAutoresizingMaskIntoConstraintsAnchorage 会自动把表达式左侧视图的该属性设为false建议始终让子视图写在等号左边。常见问题 FAQQ1Anchorage 支持哪些平台iOS 9、tvOS 9、macOS 10.11见 Package.swift 与 podspec 声明Swift 4.0 / 4.2 / 5.0 均可编译。Q2想让约束默认不激活怎么办使用Anchorage.batch(active: false) { ... }批量收集之后再统一NSLayoutConstraint.activate(_:)激活性能更好。Q3单元测试在哪里AnchorageTests/AnchorageTests.swift 覆盖了全部运算符行为运行 RunAllTests Scheme 即可一键验证。写在最后至此Anchorage 的三种安装方式与 Demo 运行都已一步到位。无论是 CocoaPods 的简单、Carthage 的静态框架还是 SPM 的原生集成任选其一你都能在几分钟内把 Auto Layout 代码量砍掉一大半——这正是 Anchorage「让布局从未如此简单」的初衷 ✨【免费下载链接】AnchorageA collection of operators and utilities that simplify iOS layout code.项目地址: https://gitcode.com/gh_mirrors/an/Anchorage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表