2

CareKit 中有 Care Card 和 Symptom tracker。我不明白如何自定义 Carecardviewcontroller 和 Symmetrytrackerviewcontroller。我不想使用这些视图控制器,但对使用这些视图控制器的组件感兴趣。没有明确的文档来探索这一点。

1
(来源:carekit.org

4

2 回答 2

2

如果你是从 Swift 的角度来看的,那么必须承认 CareKit 和你想象的任何东西一样“非 Swifty”。GitHub 站点当然是一个开始,但是在阅读那里的编程指南和实际实施解决方案之间存在着巨大的差距。对我来说,这当然是一个漫长的过程!

也就是说,您可以通过使用 CareKit 提供的视图控制器委托函数向 CareKit 的无故事板方法添加自定义。

例如,假设您有一个应用程序可以提醒您的用户执行两项干预活动,(1) 服用阿司匹林和 (2) 快走。如果用户打开护理卡并点击“服用阿司匹林”的事件图标(其中一个圆圈),那么这将触发 OCKCareCardViewControllerDelegate 中的一个名为:

careCardViewController(_ viewController: OCKCareCardViewController,
                       didSelectButtonWithInterventionEvent: OCKCarePlanEvent)

在这种方法中,您可以选择您想要的任何视图控制器。例如,如果事件是服用阿司匹林,则显示一个视图控制器,显示一张阿司匹林表的照片,提醒它应该只包含 81 毫克剂量,以及关于用水服用的建议。

当然,使用 CareKit 没有什么是轻松的。事实证明,如果点击圆形图标,您可能还想关闭 CareKit 调用事件完成的标准做法。这是通过从另一个名为的委托方法返回“false”来完成的:

careCardViewController( _ viewController: OCKCareCardViewController,
                        shouldHandleEventCompletionFor
                            interventionActivity: OCKCarePlanActivity )
                      -> Bool

我可以谨慎推荐一本名为《Beginning CareKit Development 》的书。它是为早期版本的 Swift 编写的,你必须做很多“翻译”才能让 Swift 3 工作。我上次在 GitHub 存储库中查看与本书相关的代码也完全在这个早期版本。如果您要求,APress 将提供更新到 Swift 3 的代码。在 Kindle 上,这本书有许多小故障,包括没有页码的索引,也没有指向相关文本的超链接,非常奇怪的格式选择使得文本有时难以与代码区分开来,以及解决方案代码中偶尔出现的错误。综上所述,如果没有这本书的帮助,我怀疑我在使用 CareKit 方面是否会取得任何进展。

于 2017-02-23T23:13:22.737 回答
1

我自己一直在寻找这个答案。

据我研究,您可以使用 UIAppearance 直观地自定义此屏幕。和/或您可以使用它的行为从头开始创建一个像这样的新屏幕。

您可以查看 CareKit 源代码以获取相关提示:https ://github.com/carekit-apple/CareKit/tree/master/CareKit/CareCard

在那里你会注意到一些有趣的类/文件:

  • OCKCareCardWeekView
  • OCKWeek标签查看
  • OCKHeartView
  • OCKHeartButton
  • OCKWeekViewController
  • OCKHelpers

CareKit 通过代码绘制每个屏幕。你可以通过阅读代码来了解他们是如何做到的。我们的想法是使用这些部分创建您自己的 ViewController,或者从头开始创建一个。

当然,它不像使用 CareCardViewController 那样简单,但这会让你到达那里。

于 2016-07-05T20:06:59.420 回答