iOS
文章平均质量分 64
HelloMagina
这个作者很懒,什么都没留下…
展开
-
UICollectionView的Cell间距
水平UICollectionView设置Cell间距原创 2022-09-06 10:25:02 · 1145 阅读 · 0 评论 -
iOS包体积优化-图片优化
iOS包体积优化、图片压缩、相似图片检测、无用图片清理原创 2022-08-11 14:53:12 · 1062 阅读 · 0 评论 -
Swift数组copy-on-write特性实例
Swift数组copy-on-write特性原创 2022-08-10 11:21:26 · 387 阅读 · 0 评论 -
UIScrollView的子View曝光统计实现
产品或者运营会要求统计在UITableView\UICollectionView\UIScrollView中,每个卡片的曝光情况。一般的比较简单的实现方式就是在func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "TableVie原创 2021-12-20 21:48:48 · 2016 阅读 · 0 评论 -
前端WebView传递图像到原生
背景:前端页面需要将页面展示内容进行截屏,然后调用原生的分享功能进行分享。解决方案前端调用相关api对页面内容进行绘制截取,将截图的内容进行base64编码后,再通javascripteinterface传递给客户端,客户端将webview传递过来的字符串解码成Bitmap疑难点1、base64字符串从前端传过来时,带了base64的标识符,一般为"base64/png",注意客户端在解码时,一定要把这段标识字符串删除掉,然后再解码,否则会解码失败;2、iOS解码时,除了第一个注意点外,还要要注原创 2021-10-15 16:49:26 · 537 阅读 · 0 评论 -
集成第三方FrameWork导致App体积增长估算
工作中在接入一个网络安全防护sdk时,sdk方提供的是Framework压缩文件,里面包含的是编译后的二进制文件和头文件。当看到二进制文件有20M时,就会怀疑sdk太大,导致最终App的体积增长过多。后续分析后,虽然二进制文件有20M,但是实际造成的App体积增长应该只有2M左右。这个二进制文件其实就是一个静态库.a文件。下面解释下这个二进制文件有20M,但造成app实际的体积增长只有2M的原因。BitCode简单解释BitCode就是一种LLVm的中间编码,只要有BitCode,在没有源代码的情况下,原创 2021-09-09 11:37:26 · 604 阅读 · 0 评论 -
Alamofire请求如何添加httpBody
背景服务端给的接口,需要将参数以application/json的格式,作为请求体,以post请求的方式传给服务端。项目的网络请求框架是封装的Alamofire,业务层只需要构建业务对应的Request和Response即可。业务代码大致如下:class Request: WowRequest<Respone> { var countInfo: Bool = false var page: Int = 0原创 2021-08-15 15:59:35 · 1729 阅读 · 0 评论 -
Swift线程安全变量实现
为了保证线程安全操作,一般语言都提供了锁Lock来保证临界区安全。所以我们可以通过NSLock来实现对变量的读和写都加锁来实现线程安全。class Sample { var intValue = 0 let lock:NSLock = NSLock func getValue()->Int { lock.lock() let value = intValue lock.unlock() return value } func setVal原创 2021-07-09 16:33:58 · 1545 阅读 · 0 评论 -
iOS视频列表开发总结
最近开发了一个较大的需求,即视频列表,特点是每个视频卡片高度不一致,包含不同的元素,若卡片长度超过一屏,还需要将底部的操作栏悬浮。可以上滑下滑自动切换到下一个播放.整体实现UITableView作为容器,每一个Item都是一个视频。卡片高度使用自动布局计算,宽度跟手机屏幕宽度相等。踩到的坑自定义UITableviewCell或者是UICollectionviewCell时,添加子view要加到contentview上,若直接加到cell的view上,则点击事件会失效。func setUPUi(原创 2021-07-09 16:24:57 · 1199 阅读 · 1 评论 -
UICollectionViewCell自定义遇到的坑
使用UICollectionView来加载网格数据时,都需要自定义UICollectionViewCell,一般都会复现cell的init方法。重点来了:不能复写init()方法,而应该选择复写initWithFrame()。貌似UICollectionView在初始化cell的时候,调用的是initwithframe(),而不是init()....原创 2020-06-08 14:59:39 · 865 阅读 · 0 评论