早季ios客户端兼产品原型
摘要
早季社区的ios客户端规划
前言
初始开发阶段
swift接触是在20年10月,那时候经常加班学习时间不是很多,一开始是午休挤时间.后来发现这样不行,效率太低.开始减少加班,傍晚回去7点搞到10点.
又因为忙碌了一天,回去的时候基本都在听些直播、相声之类的,状态不是很集中,听着听着就去看了.过年期间1周的学习进取要比过去3、4个月的效率还恐怖
,挺痛苦的,内心很纠结.经过胜楠建议我早起,结合我实际情况,进一步取消加班.到点就走,每天8-9点就睡觉,早起4-5点起床,这三个小时精力非常集中,效果还不错.
坚持了一个月,公司给员工涨薪,和每个人都要聊一边.过程中询问领导对我的工作评价,总体评价是不如去年的,他应该挺失望的(我猜测).回归原来的节奏,每天最少留公司1小时.
节奏崩盘,此时根据swiftui开发的app原型已经差不多了,还差临门一脚了.此时我决定辞职,我不能做到兼顾.
学习与开发周期
- 学习是20年10月到21年2月,断断续续的
- 2-3开始编写早季客户端原型
- 3-5月之间在纠结与实践辞职
- 7月玩了两周游戏1周java框架重构,
- 7月19号正式继续开发ios原型
一阶段目标(21年3月-5月)
- 已经在21年2月-3月实现,80%的页面
二阶段目标(21年7月完成)
- 完成度提高到100%,分析当前功能是否已经满足市场需求,补充细节,或缺失功能
三阶段目标(21年9月完成)
- 8月份将java后端4.0版本开发完毕后,实现api
模仿
- 初次加载参考youtube将栅格展示出来
- 没有网络提示参考youtube利用底部安全区域展示
未完成部分
- 现在剩余模块为
- 相集(上传照片模块)
- 评论模块
- 我的模块
- 用户中心模块
- 原型修改与添加(遗漏或后续想到)
- 支付与提现模块
- 通知(点赞、评论、回复)的跳转逻辑
常驻bug
- 下拉刷新偶尔无法下拉,必须关闭程序重启 换了种方式实现刷新与加载
- 首页onapper放在lazystack内为了解决swiftui小键盘隐藏时触发onapper bug . 但是破坏了原有的视图结构(重试界面)
需补充
- 照片发布被点赞次数,被集邮次数的展示
- 信息预览接口
- 相集界面展示时添加筛选条件,全部 我参与集邮
开发日志
2021/01/15
- 集邮页面添加删除
- 集邮页面添加举报
2021/01/07
- 添加-管理员审核日推页
- 调整-日推详情页如果是管理员将展示设置状态按钮和删除按钮
- 修复-编辑拒绝状态版本应该不变
2021/01/06
- 调整-同一场漫展发布coser与pho算作1次参展
- 修复-发布相集校验是否已经在同板块下存在数据
- 优化-上传相集页面的发布按钮 删除按钮 上传图片 添加隐藏小键盘事件
- 修复-上传所有页面 pickerphoto的view使用同一loading
- 调整-底部删除框由offset改为transition
- 修复-相集发布 集邮发布图片覆盖在texteditor
- 添加-用户中心 日推模块
- 修复-头像上传没有loading加载
- 修复-所有图像上传添加disable控制
- 修复-更新用户心成功时没有更新mine页面
2021/01/05
- 修复登录后未重新加载mineview
- 修复发布日推页面 因图片覆盖texteditor无法获取焦点的问题
- 修复通知列表未加载coredata的问题
- 对点赞通知与回复通知添加link news
- 日推删除后返回上一页
- 修复通知内跳转到日推 编辑后没有变化的bug
- 评论与回复时校验顶级id是否被删除 针对news校验status是否合法
- 修复部分列表不触发onappear的问题 但并没有将所有列表进行测试
2022/01/04
- 更新时需要添加修改说明
- 正文页面添加拒绝说明
- 删除时返回历史
- 删除时历史清除对应item
2022/01/03
- 对接编辑接口
- 编辑成功时返回newsContentInfo 状态与内容变化
- 编辑成功时newsHistory item提到首位 item状态与内容变化
2022/01/02
- 新闻发布页面设计与对接接口
- 现嗯历史页面
- 将历史与主页跳转整合
- 重新设计newsSendPage模式将 upload与update整合
2021/12/29
- 新闻静态页面重新设计
2021/12/28
- 漫展添加城市筛选
2021/12/23
- 测试与修复bug
- 集邮文字未展示
- 集邮用户id与文字间距
- 集邮页面card用户文字位置调整
- 漫展详情添加跳转源作者链接
- 一级评论后未弹到顶部
2021/12/22
- 调试完毕第三方授权登录与首次登录绑定手机号
- core data 添加userinfoid字段 以区别不同用户
- 发现bug 留言后自己可以回复
- 留言详情页面删除留言后添加提示 并且展示页面丢失
2021/12/21
- 完善登录页面,初次第三方授权登录时需要绑定手机号
- 对接接口-登录
- 对接接口-绑定手机号
- 对接接口-发送手机验证码
2021/12/19
- 自定义imgTextFieldAlert 用于输入图形验证码
2021/12/18
- qq登录折磨中
- 主要参考文档
- 引用sdk会报错 - 解决方案
- 授权之前会1005 - 关闭vpn
- 授权之前443 - 解决方案
- 调用handleOpen没有任何反馈
2021/12/17
- 注册调试验证码登录
2021/12/16
- 折磨了好几天微信登录 终于找到一篇保姆级的代码片段 但是不走回调还是测试中 参考代码
- swiftu 加载 SceneDelegate
2021/12/13
- 所有讨论与评论tab添加数量
- 评论通知 分化为 漫展讨论 相集评论 新番讨论三部分的跳转路由
2021/12/12
- 下拉刷新偶尔失灵bug找到 在imageTabView出现以后bounces初始化为false 所以 应该在隐藏式 设置true
2021/12/11
- 漫展按照标题检索
- 新番按照标题检索
2021/12/10
- 关注动态主页展示
- 我的动态主页展示
- 优化界面查漏补缺阶段 不再详细记录
- 漫展页面添加讨论(评论)模块
2021/12/09
- 发现bug 下拉刷新时 会触发上滑刷新
- 删除留言
- 留言通知查询
- 留言通知详情
- 留言通知回复
2021/12/08
- 关注/取消关注
- 关注列表
- 粉丝列表
- 留言
- 回复留言
2021/12/07
- 链接到更多其他平台
- 用户中心信息修改
2021/12/06
- 用户中心主页数据读取
- 链接到更多参展
- 链接到更多集邮
2021/12/05
- 最后尝试了一下swiftui无法将布局设置为【沾粘、头部、分段、分页】(uikit可以实现,但需要大改,与我封装的model冲突很大)重新设计用户中心页面
- 装备、动态、我的点赞、精选动态 删除
- 参加漫展、参与集邮整合到首页
- 完善参展与集邮
- 补充缺失id字段导致的序列化失败
- 添加跳转到photo
- 修补布局
- 漫展主页因标题过短导致右居中
2021/12/04
- 计划完成
- 点赞详情页面
- 本机缓存编写与网络接口链调
- 最后思考了一下用户中页面
2021/12/03
- CommentTwoListView 解耦 为了可以让通知详情页通用
- 一级评论通知详情 接口对接
- 二级评论通知详情 接口对接
- 修复二级评论bug 只删除index=0
- 优化显示 删除清空应该显示listEmpty
2021/12/02
- 点赞通知页面设计
- 集邮通知页面设计
- 评论引用图片改为photoCoverImg
- 删除集邮时多余的上传字段 漫展封面 漫展标题 用户相集封面
- 修复bug 集邮上传没有添加loading
- 修复bug 曾与他集邮一直为1
- 通知相集集邮详情页面设计
2021/11/30
- 我的页面添加未读集邮
- 回复我的通知页面
- 修改我的页面接口,将个人信息缓存到userDefault
2021/11/25
- 一级评论删除举报界面(菜单按钮)
- 对接一级评论删除接口
- 获取不到主对象将作出相对应的提示 为此修改模块-弹窗 更换组件,与request解耦
- 删除动画
2021/11/24
- 微调一二级评论页面, 页面样式 发布按钮 等等
2021/11/23
- 对接几口-一级评论附加部分二级评论预览
2021/11/22
- 优化模块-展示三级评论
- 优化空数据与断网重试的页面模块,更好的兼容scrollview与Vstack不同场合
- 优化小键盘弹出遮罩,统一HscrollView与other模式
- 二级评论
- 点击用户为回复此用户
- 隐藏小键盘恢复默认回复楼主
- 条件: 输入框内文字长度为0时
- 说明: 如果存在文字,可能表示用户正在输入误触导致隐藏,会下意识再继续编辑
- 提示也随之变化,小键盘弹出为回复 @{用户} 隐藏小键盘为恢复默认值 请发一条友善的评论哦
- 底部输入框添加文字长度限制
- 评论成功添加提示框
- 二级评论点赞界面修改,实现接口
2021/11/21
- 优化显示-添加评论后显示在顶部
- 优化显示-添加评论添加loading
- 优化显示-添加评论后跳转到top1
- 集邮与相集合并-因为这样相对来说逻辑简洁,用户只需要一个入口,同时可以共享评论,减少开发复杂度
- 对接接口-发布二级评论
- 对接接口-分页二级评论
- 优化显示-keyboard弹出时界面抖动问题
- 优化显示-初次加载为empty时默认展示还没有数据,此时评论后的临时数据不会展示
,原策略评论时会向addModel.array内插入一条数据,这列数据用于展示我的发送,经过之前的优化,
现在可以将这两个array合并
2021/11/20
- 对接接口-添加评论
- 对接接口-展示评论
- 删除预览二级评论,暂时考虑不到如何更好的实现此功能,非重点先搁置
2021/11/19
- websocket 客户端搭建并对接服务端
2021/11/18
- 我的参展接口对接
- 发现bug-隐藏小键盘时会调用tabView内的onapper,解决方法为将tabview内的onapper放置于lazyStack,此问题本质为swiftui bug
- 发现bug-未解决添加到常驻bug 2.
- 我的参展-集邮页面设计,几乎无改动,使用原有的photoHomeViewItem 添加字段在此漫展内的集邮次数
- 我的参展-集邮页面对接
2021/11/17
- 对接我的页面
- 思考参展的方案,并实现界面
2021/11/15
- 对接我的页面接口
- 思考系统通知、回复评论等通知的策略
2021/11/14
- 计划重新排版一下我的页面
- 取消等级
- 访客改获赞
- 历史浏览改留言通知
2021/11/13
- 新番表的封面重新排版
- 新番表主页接口
- 新番详情接口
- 粗略完成失败跳转到登陆页面,并且实现登陆过程
2021/11/12
- 集邮数相关接口改造
2021/11/11
- 找了很久的下拉组件,效果最好的还是uiscroll内的组件效果最好,但是我不清楚如何兼容到swifuti,网络上找到的轮子也只是普通的,唯一一个
youtube的视频,他要计算card高度,并不能通用.还有就是ios15的刷新,但是只适用于list,list也有尝试,但是很复杂,要去除各种样式,太麻烦了,放弃了 - coser上传接口添加字段photoTitle photoCoverImg字段
- coser发布添加文字限制
- 小键盘隐藏区域
2021/11/10
- 升级ios15后多个问题
- 所有的navigationBarHidden失效,将top改到navigationBarItem
- tabbar变成透明色,问题待处理
- navigationLink有时失效,很懵
- 返回按钮没有携带title是因为item太宽
- 页面加载卡顿
- 删除接口
- 上传接口
- 遇到bug数组清空如果用binding下标会越界,解决方式换为增强for循环形式
- 添加限制,文字<=10
- 升级ios15
2021/11/08
- coser上传接口需要补充相集title和相集content
2021/11/07
- 发布集邮页面设计
- 发现bug,coser上传,图片上传失败可以点保存 已解决 判断失败list是否存在
2021/11/06
- 点赞、取消点赞改写2.0继承规则
- 集邮页面点赞功能实现,模块写好直接调用是有点爽
2021/11/05
- 调整集邮样式
- 将点赞按钮布置在底部,改为黑色,背景为模糊透明
- 用户内容放在用户名下方
- 添加与ta集邮次数标记
- 还是将功能区放在了照片下方,模糊背景方式展示影响观感
- request请求添加isPreview字段,用于判断是否为预览,预览将不加载,return方法
2021/11/04
- 照片详情的load预览
- 照片详情初次加载error,展示重试页面,重试成功后照片没有加载成功
- 原因: 重试按钮调用的是loadRequest,但是loadRequest出来的数据需要二次加载
- 解决办法: retry时调用retryLoad.子类重写retryLoad.retryLoad调用loadRequest
- 照片详情页面重新调整格式
- 封面单张照片改1-4
- 总照片量限制为4张
- 点赞,照片数量等信息添加浅色透明白底
- 发现bug 此页面的下拉箭头看不到
- ..颜色设置的白色,难怪
- 发布照片时,初始化冗余的照片数量
2021/11/03
- photoContentHome返回格式为objectName方式
- 照片圆角
- 发现bug 上滑加载卡顿,会error
- 经测试是因为双层foreach加grid造成的
- 解决方案9宫格改4宫格
- 照片详情展示策略兼容新的展示方式
- 修改返回格式为cos模式,兼容sakiInfoLoad
- 照片详情实现likebutton
- 将coser与pho部分融合,之前分离是因为第一版代码所致,第二版修改后本可以融合,但是搁置了,今天合并在一起
- 发现bug,新的视图展现方式在前端展现较慢,多重if判断导致?已解决,同上
- 发现bug,下啦刷新在linkview内点击likebutton后失效?已解决,同上
2021/11/02
- 根据youtube的分享修改了自己原有的ImageTabView,增加滑动返回,
有一点点小瑕疵,zoom时缩小焦点在左上角,一时半会没找到什么好的解决方案,等全做完优化的时候和群友问问好了 - 今天还是在尝试将effect融合进去,但是尝试了各种方法最后放弃了,这个模式还是有待改进,等待ios15的swiftui再看看好了
- 突然发现上传策略还是有遗漏,比如用户上传照片失败如何删除失败照片(以判断存在失败上传不允许发布或发表)
- 修复bug showCoserPhotoPicker为coser专用改为showPhotoPicker
- 修复bug useExchangeDelegate为coser专用已修改
- 想尝试解开上传时 禁止交换、禁止查看、禁止删除
- 交换bug,当group==8时还可以交换,上传成功后恢复限制()
- 查看bug,上传过程中openImageTabView会加载old图片(已修复,问题是多层view其中一层objectName为@State,将此层去除即可)
- 优化体验,上传/保存/删除成功时,不重置另一方数据
2021/11/01
- 尝试将sendCoserPanel有navigationLink改为类似与微博 推特 微信 bilibili从屏幕底部弹出,并且在退出是提示用户正在编辑,
结合自己的ui实际测试后发现并不适合- 因为结构导致,修改coser并且修改pho.同时发布pho,此时coser结构会被重制,但这并不是问题,很少可能会出现此类情况,而且就算出现问题也不大
- 我认为返回应该随心所欲一点比较舒服,哪怕是未保存状态,滑动返回更舒服
- 总体来说是因为我个人认为不适合
- 删除成功并且加载成功 输出成功提示框
- 修改imageTabView策略,与现在的cos模式同步
- 在尝试如何通过matchedGeometryEffect来让图像与图像查看器之间过渡展示
- 最后发现需要将scrollview隐藏,这样就就可以达到效果,但是scrollview隐藏再展示会让position重置
- 尝试将问题发布于stackoverflow
希望会有大佬回复我,嘤嘤嘤
2021/10/31
- 修改细节,存在历史状态按钮为保存,否则为发表
- 发布错误弹出提示框,成功则重新loading
- 修复bug快速划过item为nil,nil时退出负面效果为停止替换
- 修复bug请求第一次alertshowing后,第二次成功依旧alertshowing->在loadrequest初始化true
2021/10/30
- 修复滑动返回时顶部出现白条,原因是历史遗留问题navigationBarBackButtonHidden改成navigationBarHidden
- 添加删除按钮与发布按钮
- 完成sendpage删除接口调用
- 待优化alert模块 因为成功时也有可能需要触动
2021/10/26
删除框
- onDrop太敏感,滑动到上方就会被删除掉,看看有没有其他更好的解决方案.DropDelegate内存在一个方法可以解决这个问题
- onDrag展示删除框以后不知道该如何隐藏,考虑是否常显示deleteBox.DropDelegate内存在一个方法可以解决这个问题
上传过程中禁止切换到pho
重试按钮调整样式
发现bug,当组内容为空时,因为原逻辑需要获取appendIndex,计算没有对照组,没有获取到appedIndex,导致无法上传新照片
移动图片时添加细节,to>from to<from to == from + 1 || to - 1 == from
明日计划完成删除的业务逻辑,与上传服务器,完成将coserupload 修改为与pho通用,或者pho单独再copy一份,再说吧
2021/10/25
添加loading效果,以免多次上传
最后效果是将重新上传与上传整合在一起了,唯独有点小瑕疵,进度条偶尔鬼畜,再看看是哪里的问题
2021/10/24
- 为了进一步优化存储,决定再次修改json格式
- 添加originObjectName与miniObjectName,之前使用路径+originName方式弊端太大,还是区分开比较好
- 优化上传,先判断源数据是否存在相同md5
- 不存在,调用上传
- 存在并且成功
- 将所有相同md5结果同步
- 存在并且失败
- 调用上传
- 将所有相同md5结果同步
- 优化体验,添加重新上传工程
- 重新上传某一照片时,匹配所有md5结果
- 重构过程中,目前完成了上传,明天完成失败回调,重传,重传成功、进度、失败回调+测试
2021/10/23
- 上传图片过程中不允许添加图片,将plus图标display
- 上传图片过程中禁止拖放
- 限制上传找片数量,每组8张
- 当一组上传的照片达到8张,第二组拖放时采取交换策略
2021/10/21
- 上传图片时同时上传缩略图
- 修改数据返回格式添加对应新上传的对应参数
2021/10/20
缓存问题解决
我现在将图片存储在云平台的对象存储,但是有个疑问
- 上传后的图片会返还对象访问url,此url不能直接访问,对象访问url加签后生成的预签名url才可以正确加载图片
- 我服务端保存对象访问url
- 前端加载图片的时候,先将对象访问url处理为预加签url,然后通过Kingfisher框架加载图片
- 但因为预加签url会变化,导致Kingfisher的缓存功能失效
请问:像这种情况有什么比较好的处理措施吗,如何让缓存与防盗一定程度上的兼容
这一切的疑问伴随着人家告诉我,kingfisher有key缓存,话题终结,不用自己写一个一级缓存框架了,太好了
修改MyKingfisherView展示策略ing缓存策略调整后,图片展示已兼容
添加照片上传到cos 简单实现
2021/10/19
- 在理解cos,同时思考如何嵌入自己的系统内
- 理解了如何生成下载url并且在线访问,
- 配置控制台的header
- 后端获取临时密钥(密钥权限需要可下载)
- 前端通过key与临时密钥生成签名url
- 最后访问签名url
- swift有点恶心人,暂时没有async/await,无法将闭包内的值return出来,暂时使用封装view结合onapper 与 combine封装url来实现
2021/10/18
- 封装上传到cos策略
- 可监听上传进度与完成状态
- 封装 alertEnvironment挂在到contentView,修改request loadRequest方法,添加可选参数alertDTO辅助展示
- 完善request try策略 转换error时递归执行
2021/10/15
- cos接口调通
- 思考一下上传策略
2021/10/13
- 除了动画,交换策略完美优化实现,可以跨天交换
- 接下来准备改造list,可以实现添加照片,然后实现删除照片,核心重点是如何让list兼容显示url与name.或者说是url显示与image显示
- 格式化名称environemnt->model module->VO
- 封装上传照片model
2021/10/12
- 决定重构数据库格式[{“date”:”2021/10/11”,”fdfsPath”:”http://xxxxx"}],因为安卓所需要的格式可能与ios不同,数据库存储基础类型
- 前端格式也修改了,但是遇到一个,我reorder gird时 必须在一个list内,但我展示时又要按天分段展示目前格式为
{“content”:””,”holdDayList”:[“2021/10/11”],”imgList”:[{“date”:”2021/10/11”,”fdfsPath”:”http://xxxxx"}]} 现在可以单独排序 也可以单独分段展示,如何分段展示又可以排序呢.因为我想先渲染holdDayList作为段落标题,段落标题内只渲染以日期为id的item 看看移动时能不能获取到对应item的信息吧,我不确定和我联想的是否一致,还有个问题,我将12日第三个图片想移动到11日最后一个,和12日第一个,所获取到的信息应该是一致的- 效果实现的不错,但是,如果我将第一日的照片都移动到第二日,第一日为空时,我要如何将第一日数据移动到第二日呢…
- 完美实现,通过+号站位,然后通过日期相同找索引
- 效果实现的不错,但是,如果我将第一日的照片都移动到第二日,第一日为空时,我要如何将第一日数据移动到第二日呢…
2021/10/11
- 先尝试将预览视图展示出来,在此基础上实现拖动换位置
- 找了两种demo,第一个list
第二个List - 第一个用url做id,交换时会因为id重复导致交换错位
- 在尝试第二种时要更改数据格式,挺麻烦的,前后端改完才想起来,生产环境我用fastdfs url好像并不会重复- -靠
- 期间遇到了fastdfs无法使用的问题,日后再说先记一笔
- 找了两种demo,第一个list
- 有个bug,跨list拖动会error,以为是都在用一个dragged的问题,拆开后发现还是不行…,明天考虑一下其他方案
- 可以跨天拖动 改动较多
- 查找约束单天list 未知
2021/10/08
- 页面关闭再打开refreshing箭头会露出一半… 最后发现是历史遗留问题,当年的navigationbar方式过时了,
第二次加载有隐藏的lineText - 发现一个新问题,如果一次loading时间过长,在open view->close view 不断重复这个过程,
会因为之前的n次request未中断,全部延迟到最后一次.原因:存储在environment,所以这个request不会销毁,会累加 - 和群里学到一招,把声明方式改为StateObject 绑定单个页面即可,也确实,我其他页面用不到,也没必要非要放环境
- 优化一下分页的view封装
2021/10/06
- 尝试解决因toppost的高度变化影响scrollview刷新,最后发现可以在scrollviewwithrefresh内加一层scrollview解决,
只不过显示效果会差一内内,可以接受 - 存在异步线程问题,会导致清空dataarray后,视图获取不到对象更新而导致的数组越界 第三层视图binding属性时出现问题
在第二层建立中间变量过度一下,虽然代码有所冗余,凑合用吧 - 和首页的下拉刷新效果还是有差距,在查找是哪里问题 添加动画解决
- 页面关闭再打开error 原因是async加错位置
- 页面关闭再打开refreshing箭头会露出一半… 原因是关闭视图再打开后高度会变化,设置固定值解决,就还挺离谱的,偏偏第一次正常
2021/10/05
- 完美兼容继承方式来实现接口对接,代码简洁的一批
- 测试了相集主页分页加载,当前代码下完美兼容
2021/10/03
- coser/pho发布照片预览数据展示
- 优化environment api封装,将loading、result等,添加到控制参数对象,方便管理与调用,简洁化environment
- 改造所有environment
2021/10/02
- 找到合适的loading提示方法
- coser/pho发布照片预览接口对接完毕
2021/09/28
- 封装toastMessage模块添加到content上,但是发现一个问题,sheet弹出后是覆盖在content上的,还是需要调整
- 修改封装TextTips,将string替换为anyview,提高自由度
2021/09/26
- coser/pho发布照片预览接口对接
2021/09/24
- coser/pho发布照片的api封装
2021/09/15
- 点赞模块改写callback
- 取消点赞
2021/09/13
- 开始改写点赞模块
- 添加测试token
- 调试完like server时回来看list,九空格达到3行时scrollview会鬼畜- -.后来发现是因为读取arraycount的原因,很迷惑,改成了固定索引9,无伤大雅
2021/09/10
- 我的照片主页浏览完成
- 封装单页预览
- 开始集邮页面,后续又思考了一下,集邮页面应该单纯一点,只放用户集邮,将我的照片与集邮照片共有的header删除
,并且需要为集邮用户添加点赞功能,即使是集邮,也想被人关注吧 - 集邮为用户添加留言,但是就会比较臃肿,可能要改结构
- 完成集邮展示,还算是顺利
- 开始实现点赞功能,比较麻烦,需要集成coredata存储点赞记录,用于比对是否可以点赞的第一重拦截,帮助后端减轻压力
2021/09/09
- 将coser详情渲染出来
- 遇到一个swiftui的bug,第二层navigationlink onAppear会被触发两次,头疼.
- 再次测试后发现不是onappear触发两次,而是跳转了两次?但是视觉上并没有这种效果.我淦
- 问题出在第二层的HScrollViewController内的navigationLink跳转时会触发这个bug,这个问题太严重了,有很多页面在用这套分页模式,和难受,伤及根本
- 我以为是HScrollController的问题,换成tabview后发现,是这种分页策略的问题一,一时间很无语
- 最后在NavigationView添加.navigationViewStyle(StackNavigationViewStyle())解决,就物语
2021/09/08
- 煎熬的尝试matchedGeometryEffect,最后勉强达到效果,但是切换tabview时由于切换了matchedGeometryEffect id来达到关闭tabview时提示用户当
前查看的照片索引.但,正因如此,导致滑动tabview切换item时,会因id的变化让上一张照片闪现消失缩小.
matchedGeometryEffect效果
- 最后修改后的效果为,关闭弹窗后,为当前照片添加描边效果,以提示用户照片索引
最后效果
2021/09-07
- 封装tabview实现图片查看,实现zoom.通过tabview实现有局限性,关于缩放自己实现没有很好的体验.找到了一个uikit的缩放封装,完美兼容tabview,
可以实现缩放+移动,并且还可以放大滑动到边缘时切换到下一张图片,体验和微信朋友圈的查看方式很相似.关闭方式采用单击返回,没有采用滑动缩放返回,因为我的能力无法实现,同时我认为牺牲的这点体验问题不大.
{ % post_link learn/language/swift/swiftui/technical-point/image-zoom % } - 纠结一下是否需要实现,tabview的出现与消失动画,最后实现的效果不是特别理想,但解决一个问题:用户知道当前看到了哪张照片,只是动画有点奇怪
2021/09-06
- 网络图片加载,开始使用的是sdwebimage,但是没有缓存,经考虑,更换为url-image.缓存时遇到一个问题就是,调用enviroment加载vo时以加载图片会由
success -> initial 很迷惑.最后选择了老牌的kingfisher
2021/08/24
- 巨大优化分页代码结构,方便以后直接套用
2021/08/23
- 相集用户照片分页展示
- 分页模块添加空集tips
2021/08/22
- 当前技术下完美兼容下拉刷新,上滑加载
2021/08/19
- 初次加载网络异常重试界面
- 耦合分页查询调用规范
2021/08/18
- 网络请求未授权时,接口会加载异常
- 调整网络请求策略时,跳到了图片选择.结果意识在想图片权限的问题,为什么选了拒绝图片权限,还可以添加图片,我很蒙蔽,最后求助群友,说系统的imagePicker不需要权限…
- 由于苹果没有开放对于网络权限请求的api.不知道用户授权的结果.一般来说只能通过去检测网络状态来判断用户授权情况
2021/08/17
- 摸索网络请求
- 摸索分页查询,初始加载
2021/08/02
- 用户中心所有模块原型基本完成
- 暂告一段落,开始后端开发
- 说实话我写前端很头痛,应该是做产品很头痛,要设想功能点.做ui很头痛,要设想布局
2021/07/30
- 用户中心集邮模块
- 摸鱼
2021/07/29
- 尝试使用JXSegmentedView与JXPagingView,但是发现在swift内有一些bug,导致我不敢继续再尝试,
也有可能是我使用不当,但感觉不应该,因为我是吧demo复制到项目内的. - 将昨日尝试的通过滑动内部scrollView来控制外部UserInfoBaseViewHeight
- 效果还可以,牺牲的用户体验也并不大,感觉算是另一种实现方式,总体来说观感过得去.还是要得益于苹果优秀的过渡动画.羡慕他们那些apple个人开发者,他们真的幸福
2021/07/28
- 陷入双重scrollview的瓶颈了,我想实现的效果swiftui可能很难达成
- 找到一个uikit的的骨架,如果用他的话改造挺大的,好像只能使用list,我想要的效果是grid
- 在思考通过滑动内部scroll来改变外部的高度实现无缝滑动,不知道是否可行
- 我看b站的效果为page1滑动到底部,page2滑动到页头,再切换回page1此时page1同样回归页头位置
- 心态稍稍有点炸裂
2021/07/27
- 用户中心卡在了父scrollview(scrollview+tab)
- 明日上午可以解决(scrollview+tab)
- 然后再看看scrollview()
2021/07/26
- 寻找一种合适的page选项卡
- 找到了个pageView的实现方式与onload实现方式,但是在思考如何获取滑动位置来实现选项卡
2021/07/23
- 用户中心就写了一丢丢
2021/07/22
- 我发现之前写过一个用户中心
- 用户中心策略变了,照抄b站模式,将自己的模块融入进去
2021/07/20
- 放弃轮播图填充,因为实现比较麻烦不想搞,决定用社区守则来替代轮播图
- 开始userInfoCenter页面
2021/07/19
- 用循环方式与lazyGrid生成functionGroup
- 用switch方式导航navigationLink
- 开始修改功能页,设想添加轮播图填充位置
2021/03/15
- 确定我的页面 表页面 展现形式
- 增加动态tab页
- 更改tabview 内 topbar展现形式 全部修改为视图内部导航(已修改动态,其他无)
2021/03/09
2021/03/05
- 适应深色模式
- 修复hscrollview与滑动返回冲突问题
2021/03/04
- 我的界基本完毕
- 解决滑动返回冲突问题,暂时想到的解决办法在左侧侧边栏添加隐藏的 rootview用于返回
2021/03/03
- 我的界面
- 通知
- 回复
- 点赞
- 钱包
- 需要添加关注功能 在个人面板展示关注按钮
- 需要添加动态页面 记录个人历史
- 需要添加个人相册页面,未想好添加在哪里如何构建与展示维度
2021/02/29
- 定时器禁止重复执行 cancle
- 我的界面
- efresh包暂时删除
2021/02/28
- 定时器禁止重复执行 cancle
- oser pho发布 stamp发布
- 新番列表
- 新番详情
2021/02/26
- 全局通知编写
- 自定义字体引入
- 阿里iconfont引入
2021/02/23
- 组合集邮页面
- 调整topbar 添加右侧按钮
- 相集页发布照片
- 集邮页发布集邮
2021/02/22
- 制作与coser集邮页面
- 思考我的集邮添加在合适位置
- 相集评论模块的加入位置
- LeanCloud即时通讯api 看起来挺便宜
2021/02/21
- 确定好相集主页展现形式 [coser,pho] coser页存在海报其他tab不展示海报
- 暂时保留back
- 延缓无法解决冲突 HScrollview
2021/02/20
- coser列表
- coser详情
- 最后在调试顶部吸附topbar
- 经过b站up洗稿事件以后 决定日推模块保留,但是何种呈现方式还未确定
2021/02/17-19
- 调整思路,将app体量缩减为只有相集,当作我个人相册使用开发,推广时以收集各位coser照片为入口
2021/02/15
- 评论TextField组件封装完毕
- 将评论模块组装到新闻
2021/02/16
- 调整评论模块 TextFiels
2021/02/14
- 反杭
- 路上了解了一些 TextFeild
2021/02/13
- 一级评论和二级评论单页面
- 看视频