mcpField
I
ios-uikit

ios-uikit

github.com/alphaonedev开发43 次安装
代码仓库

关于 ios-uikit

ios-uikit 技能面向使用 Swift 和 UIKit 开发 iOS 界面的开发者,涵盖代码构建布局、列表视图和视图控制器生命周期,并介绍通过 UIHostingController 嵌入 SwiftUI 视图。

主要功能

  1. 01管理 UIViewController 生命周期
  2. 02构建 UITableView 和 CollectionView 列表
  3. 03使用 Auto Layout 定义布局
  4. 04以代码创建界面
  5. 05通过 UIHostingController 嵌入 SwiftUI 视图

适用场景

  1. 01不使用 storyboard 构建 UIKit 页面
  2. 02在表格视图中显示动态内容
  3. 03在同一应用中组合 UIKit 和 SwiftUI

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill ios-uikit

安装后在 Claude Code 中输入/ios-uikit确认已加载。

详细介绍

ios-uikit

用途

此技能可帮助 AI 使用 UIKit 进行 iOS 应用开发,重点涵盖使用 UIViewController、UITableView/CollectionView、Auto Layout 构建和管理用户界面、以编程方式创建 UI,以及通过 UIHostingController 与 SwiftUI 桥接。

适用场景

当 iOS 项目需要自定义视图、列表或布局且不使用 storyboard 时,可使用此技能;它适用于 Swift 应用中的编程式 UI、UIKit 与 SwiftUI 的集成,或 UITableView 中的动态内容处理。如果项目完全使用 SwiftUI,或面向非 iOS 平台,则不适用。

主要功能

  • 管理 UIViewController 生命周期:实现 viewDidLoad、viewWillAppear,以进行设置和更新。
  • 处理 UITableView/CollectionView:设置数据源、代理和单元格复用,以高效渲染列表。
  • 以编程方式应用 Auto Layout:使用 NSLayoutConstraint 动态定义布局,确保适配不同设备尺寸。
  • 以编程方式创建 UI:使用 UIView 子类构建视图,并通过代码添加子视图,无需使用 Interface Builder。
  • 与 SwiftUI 桥接:使用 UIHostingController 在 UIKit 应用中嵌入 SwiftUI 视图,以支持混合架构。

使用模式

要创建 UIViewController 子类,请定义一个继承自 UIViewController 的新类,并重写关键方法;例如,在新文件中编写:

import UIKit

class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
    }
}

对于 UITableView,实现 UITableViewDataSource:设置数据源,定义 numberOfRowsInSection 和 cellForRowAt;按如下方式注册单元格类:

let tableView = UITableView(frame: view.bounds)
tableView.dataSource = self
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")

使用 Auto Layout 时,以编程方式添加约束:使用锚点定位,例如将按钮固定在中心:

let button = UIButton()
view.addSubview(button)
button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true

要通过 UIHostingController 桥接,请嵌入 SwiftUI 视图:创建一个实例,并将其设为根视图控制器:

let hostingController = UIHostingController(rootView: MySwiftUIView())
present(hostingController, animated: true)

代理中始终使用弱引用以避免循环引用,并在不同设备上测试布局的响应性。

常用命令/API

主要 API 包括用于初始设置的 UIViewController 方法(如 viewDidLoad());对于 UITableView,使用 tableView.reloadData() 刷新内容。要添加 Auto Layout 约束,可将约束数组传入 NSLayoutConstraint.activate()。在 Xcode 中构建的 CLI 示例:xcodebuild -scheme MyApp -configuration Debug。对于编程式 UI,使用 UIView.addSubview(),并设置 frame 或约束。Info.plist 的配置格式可能会包含 UIRequiredDeviceCapabilities,用于检查设备。无需直接进行身份验证,但如果要与服务集成,可在构建脚本中使用 $API_KEY 等环境变量。具体做法:运行 xcodebuild 前,先执行 export API_KEY=your_key。此处不适用常见端点,但在 UIKit 中进行网络调用时,可使用带代理的 URLSession。基本 URLSession 代码片段:

let session = URLSession.shared
let task = session.dataTask(with: URL(string: "https://example.com")!) { data, response, error in
    // Handle response
}
task.resume()

为避免 Auto Layout 出错,更新后始终调用 layoutIfNeeded()。

集成说明

在 Swift 文件中导入 UIKit,即可集成此技能;对于 SwiftUI 桥接,还需确保导入 SwiftUI。与其他框架结合时,使用 UIHostingController 封装 SwiftUI 视图,并将其作为子视图控制器添加。对于配置,可在 AppDelegate 或 SceneDelegate 中进行设置,例如在 application(_:didFinishLaunchingWithOptions:) 中实例化并呈现视图控制器。如果使用 pods,请在 Podfile 中添加:pod 'SomeUIKitLib',然后运行 pod install。使用 xcrun simctl boot "iPhone 14" 在模拟器中测试集成,以启动设备。对于环境变量,可在代码中使用 let key = ProcessInfo.processInfo.environment["API_KEY"] 进行引用。应用约束前,确保所有视图都已添加到视图层级中。

错误处理

正确使用可视化格式语言或锚点,处理 Auto Layout 冲突等常见错误;使用 Xcode 的调试视图层次结构进行调试。对于 UITableView,实现 didSelectRowAt 并检查索引,以捕获数据源错误。使用 try-catch 处理运行时问题,例如,在 URLSession 回调中检查错误:

if let error = error {
    print("Error: \(error.localizedDescription)")
    return
}

对于 UIViewController,重写 didReceiveMemoryWarning 以释放资源。使用 os_log 或 print 记录错误以便调试,并在代理中使用 guard 语句检查 nil 值。

图谱关系

  • 与集群 mobile 相关(例如,与 android-jetpack 共享标签,用于跨平台 UI 模式)。
  • 通过标签关联:uikit(关联到 swiftui,用于桥接)、ios(关联到 xcode-build,用于开发工作流)、viewcontroller(关联到 navigation-stack,用于应用流程)、autolayout(关联到 responsive-design,用于自适应 UI)。

评论

支持 Markdown