news 2026/8/24 8:48:20

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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/Anchorage

Anchorage 是一款轻量级 iOS 布局库,通过直观的 Swift 运算符把繁琐的 Auto Layout 约束代码简化为几行表达式。本文带你快速完成 Anchorage 的安装——覆盖 CocoaPods、Carthage、Swift Package Manager(SPM)三种方式,并运行内置 Demo 项目,10 分钟即可体验布局简化效果 🚀

为什么选择 Anchorage?

写 Auto Layout 时,你是否厌倦过这样的代码?

NSLayoutConstraint(item: view, attribute: .top, relatedBy: .equal, toItem: container, attribute: .top, multiplier: 1, constant: 8)

Anchorage 构建在 Apple 官方NSLayoutAnchorAPI 之上(核心实现在 Source/NSLayoutAnchor+MultiplierConstraints.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。

  1. 在项目根目录的Podfile中添加:

    pod 'Anchorage'
  2. 在终端执行pod install,完成后用.xcworkspace文件打开工程。

  3. 在代码中import Anchorage即可开始使用。

安装方式二:Carthage 引入 Anchorage 最快配置

如果你使用 Carthage 管理依赖:

  1. Cartfile中添加:

    github "Rightpoint/Anchorage"
  2. 终端执行carthage update构建框架。

  3. 把生成的Anchorage.framework拖入 Xcode 工程并勾选 Target 即可。

安装方式三:SPM(Swift Package Manager)添加 Anchorage

Anchorage 通过 Package.swift 原生支持 SPM(swift-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 目录。

运行 Demo:10 分钟体验 Anchorage 布局效果 📱

仓库自带完整的示例工程 AnchorageDemo,打开 Anchorage.xcodeproj,你会看到 5 个现成的 Scheme:

Scheme用途
AnchorageDemo运行 iOS 示例 App
Anchorage-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 build,scripts/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

⚠️ 两个实用提示:

  • 编译时间:运算符重载会略微增加编译耗时,可用/==//>=//<=/替代==>=<=提速。
  • translatesAutoresizingMaskIntoConstraints:Anchorage 会自动把表达式左侧视图的该属性设为false,建议始终让子视图写在等号左边。

常见问题 FAQ

Q1:Anchorage 支持哪些平台?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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 8:45:41

ITensors.jl多线程加速全攻略:3大并行来源让张量收缩快10倍

ITensors.jl多线程加速全攻略&#xff1a;3大并行来源让张量收缩快10倍 【免费下载链接】ITensors.jl A Julia library for efficient tensor computations and tensor network calculations. ITensors.jl is supported by the Simons Foundations Flatiron Institute. 项目地…

作者头像 李华
网站建设 2026/8/24 8:43:39

FME在DLG修测入库中的自动化流程设计与64位环境兼容性实战

1. 项目缘起&#xff1a;当传统DLG修测遇上“数据孤岛”在测绘地理信息行业&#xff0c;尤其是涉及大比例尺&#xff08;如1:10000&#xff09;数字线划图&#xff08;DLG&#xff09;的生产与更新项目中&#xff0c;我们常常会陷入一种“幸福的烦恼”。一方面&#xff0c;外业…

作者头像 李华
网站建设 2026/8/24 8:43:21

5分钟跑通大麦抢票:Selenium 自动抢票脚本完整上手指南

5分钟跑通大麦抢票&#xff1a;Selenium 自动抢票脚本完整上手指南 【免费下载链接】ticket-purchase 大麦自动抢票&#xff0c;支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 开售那一刻&#xff0c;页面还在…

作者头像 李华
网站建设 2026/8/24 8:38:10

超越工具与人:构建机器人AI分类体系,实现精准比例治理

1. 项目概述&#xff1a;从“是什么”到“如何管”的治理范式转变最近和几位做机器人伦理和AI政策研究的朋友聊天&#xff0c;大家不约而同地提到一个共同的困惑&#xff1a;当我们在讨论对机器人和AI智能体进行“比例治理”时&#xff0c;我们到底在治理谁&#xff1f;是那个能…

作者头像 李华