“小速记” App 介绍

《小速记》各部分功能介绍 主页面,各个功能入口 ToDo 功能 新建 Todo 时,可设定 Todo 的表情 emoji 、时间段。 右滑删除,左滑完成 Todo,长按 Todo 可设定一个在几分钟后的系统通知推送(提醒这个 Todo) 每日打卡 可以新建任务,设定为每日打卡、每周打卡或每月打卡。 打卡任务有进度,任务完成后会将任务归档。 数字记录器 可以为某一件事情添加计数器,用于腐竹记忆生活中的琐碎数字。 数据 Todo、每日打卡、数字记录器是都作为任务,使用 CoreData 存放于本地。 对应的,有 ArchivedTodo、ArchivedDailyTask、ArchivedRecord 作为归档对象,在任务完成后作为记录存放于本地。 演示 App 使用视频演示

July 7, 2023

如何通过点击 UICollectionViewCell 跳转至对应的 UIViewController

跳转部分的实现 我需要从我的 HomeViewController 通过点击不同的 CollectionViewCell 跳至不同的 ViewController 思路: 首先是需要把目标 ViewController 存放起来,在点击 cell 时可以作为目的地进行 present 跳转。 因为我的多个不同的 ViewController 都继承自 UIViewController, 那么我想用它作为父类型存放在cell中。 先把 Main storyboard 存为当前类的属性,以方便初始化各个 collectionView 然后使用 storyboard 自带的动态反射方法 instantiateViewController,通过字符串找到对应的 ViewController 在 dataSource 的实现中,将 cell 的属性绑定为对应的 controllerView 目标。 最后是 didTapCell 方法,是点击后的具体要做的动作,即跳转。这里的 target 类型是 UIController。 发现这样实现不了,原因是第 1 步中 MainChoiceCell 中的 targetController 不能是 weak,若为 weak 那么它在被赋值然后在函数结束时(closure 结束)会释放引用也就是恢复为 nil,所以正确的做法应该是把 weak 去掉。 手指触碰 UICollectionViewCell 但未释放,这属于 Highlight UICollectionViewCell 底层来自 UIView。重写 highlight 的 willSet, 手指点在 UICollectionViewCell 区域会触发 highlight 置为 true ;手指不松开,移动到不属于 UICollectionViewCell 的区域,则会触发 highlight 置为 false。...

May 17, 2023