GithubHelp home page GithubHelp logo

niyangyang / ios_tips Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wsl2ls/ios_tips

1.0 0.0 0.0 69.11 MB

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

License: MIT License

Swift 1.28% Objective-C 84.13% C 11.56% Ruby 0.02% GLSL 1.14% C++ 0.87% HTML 1.00%

ios_tips's Introduction

iOS_Tips

iOS的一些示例,不定时更新~ 由于内容后期会较多,文件可能会有点大,建议终端用git clone命令下载,这样以后只需git pull更新。
GitHub:https://github.com/wsl2ls/iOS_Tips.git
掘金:https://juejin.im/user/5c00d97b6fb9a049fb436288

目录

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间滑动手势冲突

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

示例描述:

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

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

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

6、工作中踩过的坑

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

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

7、iOS Crash防护

NSArray/NSMutableArray、NSDictionary/NSMutableDictionary、NSString/NSMutableString、Unrecognized Selector、KVO、KVC 、野指针定位、内存泄漏/循环引用

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

WKWebView相关

问题说明:

  • 1、主工程就是iOS_Tips下的DarkMode,别怀疑🤣,历史遗留问题😁😀,大部分内容都在里面,run一下就明白了🤝
  • 2、小视频拍摄录制失败,主要集中在plus和X系列手机上:可能是由于写入的视频宽高videoSize设置的问题,各位可以先试试这样设置 avCaptureTool.videoSize = CGSizeMake(self.view.width * 0.8, self.view.height * 0.8);
  • 3、iPhoneX/XR系列崩溃,错误代码是pods > pods > FBRetainCycleDetector > fishhook.c 第104行 indirect_symbol_bindings[i] = cur->rebindings[j].replacement: FBRetainCycleDetector 这个是三方库里的,检测内存泄漏的,你可以把 MLeaksFinder 移除,这只是一个辅助调试工具。

Welcome To Follow Me

您的follow和start,是我前进的动力,Thanks♪(・ω・)ノ

  • 简书
  • 微博
  • 掘金
  • CSDN
  • QQ交流群:835303405
  • 微信公众号:iOS2679114653
  • 微信号:w2679114653(备注来意)

QQ交流群: 835303405

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

奔跑的程序猿iOSer

ios_tips's People

Contributors

wsl2ls avatar

Stargazers

 avatar

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.