刘小哈哈哈
码龄13年
求更新 关注
提问 私信
  • 博客:788,130
    788,130
    总访问量
  • 675
    原创
  • 992
    粉丝
  • 82
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
加入CSDN时间: 2012-12-02
博客简介:

liubo的博客

查看详细资料
个人成就
  • 获得537次点赞
  • 内容获得82次评论
  • 获得483次收藏
  • 代码片获得5,522次分享
  • 博客总排名69,311名
  • 原力等级
    原力等级
    7
    原力分
    4,223
    本月获得
    0
创作历程
  • 21篇
    2025年
  • 84篇
    2024年
  • 138篇
    2023年
  • 77篇
    2022年
  • 273篇
    2021年
  • 37篇
    2020年
  • 6篇
    2019年
  • 42篇
    2018年
  • 2篇
    2017年
成就勋章
TA的专栏
  • 计算机网络
    8篇
  • UI
    73篇
  • runtime
    6篇
  • iOS证书,签名
    16篇
  • 我的框架
    20篇
  • 音视频
    16篇
  • h5原生交互
    18篇
  • 三方库研究
    5篇
  • 自动化配置
    4篇
  • 组件化
    27篇
  • 脚本
    16篇
  • jenkins
    14篇
  • 好的方案
    2篇
  • 设计模式
    4篇
  • 数据结构
    11篇
  • flutter
    15篇
  • swift
    5篇
  • 开发心得
    10篇
  • 动画
    9篇
  • 多线程
    2篇
  • git 的使用
    30篇
  • iOS
    167篇
  • svn
    2篇

TA关注的专栏 2

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

创作活动更多

AI 镜像开发实战征文活动

随着人工智能技术的飞速发展,AI 镜像开发逐渐成为技术领域的热点之一。Stable Diffusion 3.5 FP8 作为强大的文生图模型,为开发者提供了更高效的图像生成解决方案。为了推动 AI 镜像开发技术的交流与创新,我们特此发起本次征文活动,诚邀广大开发者分享在 Stable Diffusion 3.5 FP8 文生图方向的实战经验和创新应用 本次征文活动鼓励开发者围绕 Stable Diffusion 3.5 FP8 文生图方向,分享以下方面的内容: 1. 技术实践与优化 - Stable Diffusion 3.5 FP8 模型架构解析与优化技巧 - 文生图生成效果的提升方法与技巧 - 模型部署与加速策略,例如使用 Hugging Face、Diffusers 等工具 - 针对特定场景(例如二次元、写实风)的模型微调与定制化开发 2. 应用场景探索 - Stable Diffusion 3.5 FP8 在不同领域的应用案例分享,例如游戏设计、广告创意、艺术创作等 - 利用 Stable Diffusion 3.5 FP8 实现图像编辑、图像修复、图像增强等功能的探索 - 结合其他 AI 技术(例如 NLP、语音识别)构建更强大的应用 3. 创新应用与思考 - 基于 Stable Diffusion 3.5 FP8 的创新应用场景设计 - AI 镜像开发的未来发展方向的思考与展望 - 对 AI 镜像开发伦理、安全等问题的探讨

28人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

iOS设置tab标题位置

【代码】iOS设置tab标题位置。
原创
博文更新于 2025.11.04 ·
86 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Lost connect to debugger on ‘iphone‘

跑项目的时候,遇到这样一个报错,无法在真机和模拟器上跑,在根目录下,创建.lldbinit 文件。
原创
博文更新于 2025.05.08 ·
742 阅读 ·
1 点赞 ·
2 评论 ·
0 收藏

封装了一个iOS多分区自适应宽度layout

后来遇到过几次多分区的,都是将一个collectionView放到tableViewCell 中实现的,这次为了使layout更强大,支持了多。个分区的,思路就是我们在prepare layout 获取到。每个item的frame,支持设置头部的size,支持多个分区,之前做过类似的,但是只支持一个分区,,然后创建对应的布局属性,添加到一个总的数组中。实现的思路,支持配置代理,通过代理方式设置。然后在系统方法中返回整个数组即可。分区数量和每个分区cell数量。
原创
博文更新于 2025.03.30 ·
462 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

封装了一个优雅的iOS全屏侧滑返回工具

思路添加一个全屏返回手势,UIPangesturerecognizer,1 手势开始在手势开始响应的时候,将navigationController的delegate代理设置为工具类,在工具类中执行代理方法,- (nullable id )navigationController:(UINavigationController *)navigationController。
原创
博文更新于 2025.03.30 ·
693 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

封装了一个支持多个分区的iOS自适应动态宽度layout

支持多分区的动态自适应宽度layout,完善了之前只支持一个分区的布局,这里直接上代码。
原创
博文更新于 2025.03.28 ·
374 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

iOS 在collectionView顶部无缝插入数据效果

关闭动画效果,然后在顶部插入数据,之后在滚动到插入之前的第一个数据的位置,就达到了从视觉上插入的效果。想要达到类似抖音在顶部插入数据的效果,不能用peformbatchupdate, 因为他的回调会有延迟,这里要先调用。
原创
博文更新于 2025.03.27 ·
471 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

iOS侧滑返回手势冲突处理

如果在页面总滑动横向滚动的collectionView的时候,就会执行横向collectionView的滚动,从而不执行侧滑返回的手势,这是我们不想要的结果,我们想要达到的效果是:如果我们开始滑动横向collectionView的时候,collectionView没有滑动到最左边,要正常的滑动横向collectionView,如果我们开始滚动的时候,collectionView已经滑动到最左边了,则我们希望响应侧滑手势,这样就达到了解决手势冲突的效果了。控制手势是否开始响应。
原创
博文更新于 2025.03.08 ·
690 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

iOS 使用消息转发机制实现多代理功能

在iOS开发中,我们有时候会用到多代理功能,比如我们列表的埋点事件,需要我们在列表的某个特定的时机进行埋点上报,我们当然可以用最常见的做法,就是设置代理实现代理方法,然后在对应的代理方法里面进行上报,但是这样做有个问题,就是会做大量重复的工作,我们想要到达的效果是,我们只需要实现业务逻辑,而埋点操作,只需需要我们配置一下数据,就会自动进行,这样就为我们减少了大量的重复性工作。该代理中心类负责消息转发,他引用了真正的原始代理,和一个代理对象,该代理对象也实现了列表的代理方法,里面的实现只进行埋点操作。
原创
博文更新于 2025.03.02 ·
566 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

iOS UICollectionViewCell 点击事件自动化埋点

通过hook UICollectionViewCell 的setSelected:方法,则新的方法中执行埋点逻辑,并调用原来的方法。
原创
博文更新于 2025.03.02 ·
986 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

iOSUITableVIewCell 自动化点击埋点

思路:通过运行时hook tableViewCell的 setSelected:animated:方法,iOS 中,经常要实现UITableVIewCell 点击埋点,这里通过自动化埋点的方式进行实现。在交换的方法中实现埋点逻辑,并调用原来的实现。
原创
博文更新于 2025.03.02 ·
464 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

iOS UIGestureRecgonizer自动化点击埋点

项目中很多情况下视图的点击点是通过UITapGestureRecognizer 来实现的,这个时候我们就也是可以支持自动化埋点的。通过运行时hook UITapgestureRecognizer的addTarget:action: 方法。和initWithTarget:action: 方法,在交换的方法中添加埋点的响应方法,并保留原始的响应方法,在埋点响应方法中执行埋点方法,然后调用原来的响应。
原创
博文更新于 2025.03.02 ·
457 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

iOS 实现UIButton自动化点击埋点

点击埋点响应了,防止外部再次添加响应的时候,我们这里重复添加埋点响应,同时,还要hook removeTarget:action:forControlEvents方法,在该方法中记录我们绑定的点击处理次数,当次数大于0时,进行埋点上报。方法的实现, 在交换的方法中添加一个响应方法,该响应方法实现了点击埋点操作,同时要添加一个标记为,记录我们添加过。一下是我们的实现代码。
原创
博文更新于 2025.03.02 ·
585 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

iOS实现一个强大的本地状态记录容器

这个时候,就需要我们记录一下本地状态在内存中,随着业务越来越复杂,要记录的状态也越来越多,如果状态都是对应同一个ID还比较好处理,如果不同的状态对应的ID都不是同一个,则管理起来比较麻烦,比如,有些情况下,我们不能根据某条数据的内容ID,而要记录到实例队形的颗粒度,这个时候,就需要我们支持不同的ID来记录本地状态了,ID,对应ID的值,data,对应我们要记录的数据,通常情况下是一个字典,对应我们要记录的状态字段和值,如下所示。有字典,字典中包含三个键: type:对应 id的类型,一下是我的处理思路,
原创
博文更新于 2025.03.02 ·
705 阅读 ·
8 点赞 ·
0 评论 ·
4 收藏

iOS UIScrollView的一个特性

会出发scrollView 的 scrollViewDidScroll代理方法。1如果UIScrollView 的contentSize.height >并且最大的滚动范围就是 contentSize.height - (, 则scrollView就可以滚动,否则无法滚动。这里说的是自然滚动,就是在用户松手的情况下。
原创
博文更新于 2025.01.20 ·
1077 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

iOS 解决两个tableView.嵌套滚动手势冲突

这是iOS ScrollView嵌套使用时候自带的一个机制,但是这个效果是我们不想要的,我们想要的效果是我们滚动cell里面的tableView的时候,滚动到边缘,不会带动外层的tableView滚动。如果该tableView 已经滚动到边缘了,则cell中的tableView不会滚动,系统会自动处理,会执行外部的滚动,这个时候是没有问题的,符合我们的需求,cell里面的tableView (a)的时候,cell里面的tableView没有滚动到边缘,这个时候,当该a 滚动到边缘,就会带动。
原创
博文更新于 2025.01.12 ·
1118 阅读 ·
3 点赞 ·
1 评论 ·
4 收藏

iOS layer.mask 的原理

效果是:比如imageLayer有一个maskLayer作为mask(注意maskLayer可以不跟imageLayer大小一样),那maskLayer透明的地方,imageLayer就不会渲染,而是变透明,显示出imageLayer之后的内容,maskLayer不透明的地方,imageLayer就会正常渲染,显示出imageLayer本来的内容如果maskLayer比imageLayer要小,那默认的maskLayer之外的地方都是透明的,都不会渲染。由以上原理可知,如果我们想让一个视图只展示一部分,
原创
博文更新于 2025.01.11 ·
771 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

iOS手势shouldBeRequiredToFailByGestureRecognizer 机制

我们在iOS的手势代理方法中看到这样三个方法其中,前面两个都是手势的代理方法,后面那个是手势的一个实例方法那么这三个方法分别是什么作用呢,从字面上看并且从苹果官方的文档上看, a shouldBeRequiredToFailByGestureRecognizer:b的含义是手势a (设置代理对象的手势) 的响应 需要手势b(其他手势)响应失败,就是只有手势b 不相应的时候,手势a才能响应我们通过如下代码进行测试。
原创
博文更新于 2025.01.11 ·
1422 阅读 ·
20 点赞 ·
0 评论 ·
15 收藏

iOS 中spring动画的使用

上面的位移动画,一个是普通的动画,一个是spring动画,可以明显的看出来,spring动画在动画的前期更快一些,给人的感觉干脆,利落。app 中很多都是用的这个动画效果,让人看起来很舒服。我们先来看以下两个动画的效果。spring 动画的接口就是。我们可以通过这个图看下。
原创
博文更新于 2025.01.10 ·
709 阅读 ·
2 点赞 ·
2 评论 ·
1 收藏

iOS实现在collectionView顶部插入数据效果

因为刷新视图就是在头部中,这个时候(头部在顶部,未展示出来),我们需要使用performBatchUpdates 刷新列表,而不能使用reloadData,因为reloadData 刷新头部的时候,会造成列表的cell偏移, 而performBatchUpdates 则不会。2 我们执行过插入数据操作之后,还要将偏移量滚动到之前展示的位置达到在页面顶部插入数据的效果,所以我们要精确的捕获到插入结束的时机,就需要用到performBatchUpdates 方法,在结束的回调中设置偏移量。
原创
博文更新于 2025.01.04 ·
803 阅读 ·
8 点赞 ·
0 评论 ·
4 收藏

iOS 中performBatchUpdates 的机制

这一点,在头部不展示在当前屏幕中,但是头部高度有变化的时候,我们可以使用 performBatchUpdates 刷新头部,让用户无感知的进行头部变化。performBatchUpdates ,有什么作用呢,我们下面测试了一下,发现有两个作用。在iOS UICollectionView的使用中,会遇到这样一个方法。这一点就像reloadData的作用**,就是刷新整个列表,**
原创
博文更新于 2025.01.04 ·
886 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏
加载更多