Giter Club home page Giter Club logo

wsl2ls / ios_tips Goto Github PK

View Code? Open in Web Editor NEW
1.2K 39.0 325.0 69.99 MB

iOS的一些示例,持续更新中:1、AVFoundation 高仿微信相机拍摄和编辑 2、AVFoundation 人脸检测、实时滤镜、音视频编解码、GPUImage框架的使用等音视频相关内容 3、OpenGLES 4、LeetCode算法练习 5、iOS Crash防护和APM监控 6、WKWebView相关的内容 等........

Home Page: https://juejin.im/user/1714893870076253

License: MIT License

Swift 1.04% Objective-C 85.93% C 10.55% Ruby 0.02% GLSL 0.94% C++ 0.70% HTML 0.81%
camera avfoundation video-recording filter coreimage gpuimage videotoolbox audiotoolbox opengl-es algorithms

ios_tips's Introduction

iOS的一些示例,不定时更新~

简书 掘金
CSDN 微博

目录

1、暗黑模式
2、AppleID登录应用
3、AVFoundation相关

3.1、AVFoundation 高仿微信相机拍摄和编辑
3.2、AVFoundation 人脸检测
3.3、AVFoundation 实时滤镜
3.4、GPUImage框架的使用
3.5、VideoToolBox和AudioToolBox音视频编解码
3.6、AVFoundation 利用摄像头实时识别物体颜色
3.7、AVFoundation 原生二维码扫描识别和生成

4、OpenGL ES学习
5、LeetCode算法练习
6、工作中踩过的坑

6.1、键盘和UIMenuController不能同时存在的问题
6.2、全屏侧滑手势/UIScrollView/UISlider间滑动手势冲突
6.3、UITableView/UICollectionView获取特定位置的cell
6.4、UIScrollView视觉差动画
6.5、iOS 传感器集锦
6.6、iOS 自定义转场动画
6.7、二进制重排优化启动速度
6.8、iOS APM应用性能监控管理(doing)
6.9、ipa瘦身之扫描无用资源
6.10、多个UIScrollView嵌套/个人中心页

7、iOS Crash防护
8、WKWebView相关

8.1、WKWebView的使用
8.2、WKWebView+UITableView混排
8.3、WKWebView离线缓存功能
8.4、Html非文本元素替换为原生组件展示
8.5、UIScrollView实现原理
8.6、UITableView的实现原理

高质量技术博客集合
结尾

1-暗黑模式适配

暗黑模式

2-AppleID登录应用

  • 查看本仓库下的AddingTheSignInWithAppleFlowToYourApp

3-AVFoundation相关

效果描述:

  • 1、自定义相机 拍摄视频和照片
  • 2、切换前后摄像头、调整焦距/设置聚焦点、横屏拍摄
  • 3、视频编辑:涂鸦、gif贴图、文字水印、视频裁剪 、添加背景音乐
  • 4 、图片编辑:涂鸦、贴图、文字水印、马赛克、图片裁剪

主要类:SLAvCaptureTool(音视频采集录制工具)、SLAvEditExport(导出编辑的音视频)。关于视频的压缩问题,可以通过降低采集时的分辨率sessionPreset、降低写入文件时的分辨率(AVVideoWidthKey宽AVVideoHeightKey高)和码率(AVVideoCodecKey)、指定高的FormatProfile(AVVideoProfileLevelKey)等方法来实现,同时也要保证一定的清晰度满足业务的需求, 可以看看这篇文章https://www.jianshu.com/p/4f69c22c6dce

拍摄视频.gif 拍摄照片 横屏视频
视频编辑 视频编辑 图片编辑
图片编辑 图片裁剪

人脸识别

主要类: 是由SLAvCaptureTool拆分的 SLAvCaptureSession(采集) + SLAvWriterInput(录制) 两个工具类,方便扩展,录制写入实现的方式也略有不同

人脸识别

效果描述:实时拍摄添加水印和滤镜、本地视频添加水印、GIF图水印

GPUImage框架的使用

3.5-VideoToolBox和AudioToolBox音视频编解码

请查看本仓库下的 VideoEncoder&Decoder 文件

音视频编码

3.6-AVFoundation 利用摄像头实时识别物体颜色

音视频编码

该代码地址在:https://github.com/wsl2ls/ScanQRcode

4-OpenGLES学习

示例描述:

  • 1、GLKit 绘制图片和正方体
  • 2、GLSL 绘制金字塔、颜色纹理混合
  • 3、GLSL 滤镜集合:灰度、旋涡、正方形马赛克、六边形马赛克
  • 4 、GLSL 抖音部分特效:分屏、缩放、抖动、灵魂出窍、毛刺

|OpenGLES学习.gif|OpenGLES学习|OpenGLES学习|

5-LeetCode算法练习

LeetCode算法练习集合(Swift版) ~ 每天一道算法题

6-工作中踩过的坑

| 问题描述.gif | 并存问题解决 |

CPU占用率、内存/磁盘使用率、卡顿监控定位、Crash防护、线程数量监控、网络监控(TCP 建立连接时间 、DNS 时间、 SSL时间、首包时间、响应时间 、流量)、ViewController启动耗时监测 、load方法的耗时、方法执行耗时......

6.9、ipa瘦身之扫描无用资源

扫描项目中无用的图片、类等文件资源, 此示例主要针对于此项目中的图片资源,其他类型资源实现原理相同。

6.10、多个UIScrollView嵌套/个人中心页

多个UIScrollView嵌套

7-iOSCrash防护

Crash防护内容涉及 NSArray/NSMutableArray、NSDictionary/NSMutableDictionary、NSString/NSMutableString、Unrecognized Selector、KVO、KVC 、异步线程刷新UI、野指针定位、内存泄漏/循环引用;主要是对常见易错的地方进行容错处理,避免崩溃,并保存出错时的函数调用栈,以方便快速定位代码,主要是利用的runtime和fishook知识。

iOSCrash防护

8-WKWebView相关

WKWebView的使用WKWebView+UITableView混排、WKWebView离线缓存功能、HTML非文本元素替换为原生组件展示、UIScrollView实现原理、UITableView的实现原理

WKWebView相关

结尾

  • 1、主工程就是iOS_Tips下的DarkMode,别怀疑🤣,历史遗留问题😁😀,大部分内容都在里面,run一下就明白了🤝;
  • 2、该demo里面有些功能还没有写博客介绍,后期有时间会补上,不过代码我一般喜欢写注释,所以我相信大家读起来应该也容易理解,建议大家看完之后,自己也可以写写,把整个流程过一遍,也许会比我写的更好哟;
  • 3、看过的高质量技术博客集合,这些博客质量都挺高的,都出自各个大厂、大佬之手,认真看完绝对干活满满;
  • 4、小视频拍摄录制失败,主要集中在plus和X系列手机上:可能是由于写入的视频宽高videoSize设置的问题,各位可以先试试这样设置 avCaptureTool.videoSize = CGSizeMake(self.view.width * 0.8, self.view.height * 0.8);
  • 5、当你编译的时候,XCode出现Unable to load contents of file list 错误,导致出现此原因是pods版本不一致,请更新pods版本或者重新安装。
  • 6、如果发现我简书或掘金上的文章无法查看了,请联系我。

Welcome to you 👏 您的follow和start,是我前进的动力,Thanks♪(・ω・)ノ 🤝

简书 掘金 QQ交流群 微信公众号 微信交流群
CSDN 微博 835303405 iOS2679114653 w2679114653(加我拉入群)

回到顶部

QQ交流群: 835303405

欢迎扫描下方二维码关注——奔跑的程序猿iOSer——微信公众号:iOS2679114653 本公众号是一个iOS开发者们的分享,交流,学习平台,会不定时的发送技术干货,源码,也欢迎大家积极踊跃投稿,(择优上头条) ^_^分享自己开发攻城的过程,心得,相互学习,共同进步,成为攻城狮中的翘楚!

奔跑的程序猿iOSer

ios_tips's People

Contributors

wsl2ls avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ios_tips's Issues

wkwebView+tableView

wkwebView+tableView 中如果评论列表加上点击删除的话, 推荐方案3和4 高度以及删除动画总会不理想. 这个我应该怎么处理下好些啊大神

拍摄视频失败

[self.assetWriterVideoInput appendSampleBuffer:sampleBuffer] 这个方法失败之后就是停止录制视频了 黑屏 iphone6p 12.4.5

SLEditTextView的两个bug

  1. 切换键盘样式,会自动多生成一个此视图

  2. 使用搜狗键盘自动缩回键盘时,此视图无法恢复到原状

修改代码:

  1. //颜色选择菜单视图
  • (void)colorSelectionView:(CGFloat)keyboardHeight {
    // for (UIView *subView in self.subviews) {
    // if (subView != self.doneEditBtn || subView != self.cancleEditBtn || subView != self.textView) {
    // continue;
    // }else {
    // [subView removeFromSuperview];
    // }
    // }

    for (UIView *view in self.subviews) {
    if ([view isEqual:self.cancleEditBtn] || [view isEqual:self.doneEditBtn] || [view isEqual:self.textView]) {
    continue;
    }
    [view removeFromSuperview];
    }

  1. 添加键盘消失监听事件

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

//键盘即将消失

  • (void)keyboardWillHide:(NSNotification *)notification{
    [self.textView resignFirstResponder];
    if (self.editTextCompleted) {
    self.editTextCompleted(nil);
    }
    [self removeFromSuperview];
    }

最后一帧黑屏

导出视频的时候,最后一帧黑屏,复现概率很大。有办法解决吗?大佬最棒

拍视频崩溃

AVFoundation下面的拍视频都不行了,拍照片还可以

刘海屏的手机录视频失败

2020-05-25 15:08:57.870957+0800 SLTips[4353:1354746] 音频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.893609+0800 SLTips[4353:1355132] 音频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.895508+0800 SLTips[4353:1354746] 视频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.917201+0800 SLTips[4353:1354893] 音频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.924087+0800 SLTips[4353:1354746] 视频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.939958+0800 SLTips[4353:1354893] 音频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.961779+0800 SLTips[4353:1354746] 视频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.963772+0800 SLTips[4353:1354893] 音频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.986542+0800 SLTips[4353:1355132] 音频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:57.993477+0800 SLTips[4353:1354893] 视频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:58.009625+0800 SLTips[4353:1355132] 音频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:58.028094+0800 SLTips[4353:1354893] 视频写入失败, 错误:The operation could not be completed
2020-05-25 15:08:58.395779+0800 SLTips[4353:1354674] 结束录制
2020-05-25 15:08:58.475567+0800 SLTips[4353:1354674] 视频文件大小 === 0.00M
2020-05-25 15:08:58.485146+0800 SLTips[4353:1354674] 录制成功 (null)

下载问题

你好!我下载一直hung up 是文件太大了吗

ipone xr上闪退

微信相机拍摄照片、小视频以及编辑功能在旧机型上可以运行。 ipone xr会闪退

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.