- 博客(910)
- 资源 (17)
- 收藏
- 关注
原创 【视频格式】webm用什么播放
ffmpeg -formats 可以查看ffmpeg支持的所有媒体文件格式File formats: D. = Demuxing supported .E = Muxing supported -- D 3dostr 3DO STR E 3g2 3GP2 (3GPP2 file format) E 3gp 3GP (3GPP file format) D 4xm 4X Technologie
2022-05-24 20:42:43 1299 1
原创 【cocoapods】私有pod创建步骤一览
1、创建pod的git仓库2、把仓库的clone地址复制一下3、pod repo可以看到本地所有的repo,包括path也就是文件路径也可以看到4、pod repo add PrivatePods clone地址注意:官方创建私有pod文档:CocoaPods Guides - Private Pods这个命令执行完毕后,通过pod repo找到PrivatePods的路径cd进去mkdir Specscd Specs/touch emptygit add .gi
2022-05-23 14:12:03 1148
原创 【约束】大于等于、小于等于这种类型的约束怎么用
这里先记录一种场景,后续再补充其他场景。场景描述:xib中,父视图是一个UIScrollView。这里要实现的需求是:小屏幕手机上,UIScrollView可以滑动,这样可以让所有内容都能被看到,大屏幕手机上理论上能够展示全。处理方案:设UIScrollView 最靠近bottom的那个子view为viewA,第一步:给viewA设置的约束力必须包括height >= 某个固定值,bottom 约束等于UIScrollView的bottom这里有一点需要注意,为了让he
2022-05-18 12:03:13 599
原创 【面试】【iOS】为什么说减少分类的数量能够减少启动过程的耗时
Mach-o 中有很多符号,指向当前的mach-o的,也有指向其他的dylib的,比如prinf。那么在运行时,代码如何准确的找到printf的地址呢?Mach-o中 采用了PIC技术,全称 Position Independ code。当你的程序要调用printf的时候,会先在__DATA段中建立一个指针,指向printf,在通过这个指针实现间接调用。dyld这时候需要做一些fix-up工作,即帮助应用程序找到这些符号的实际地址,主要包括两部分:Rebase:修正内部(指向当前mach-o文件)的指
2022-05-08 17:46:03 699
原创 【抓包】【Mac Charles】局域网无法抓包 手机热点来解决
做移动开发,少不了要手机抓包,做一些验证什么的。尤其是做隐私整改时,要保证用户点击同意之前,任何网络请求都不能发生,单凭人工检查代码,免不了遗漏情况。这时候,抓包工具就派上了大用场。我们都知道,抓包工具工作的场景是手机与电脑处于同一局域网下,但是呢,有些时候公司的局域网可能不是抓包工具要求的局域网,这时候就尴尬了,局域网下不能抓包了,是不是有点抓狂?别急,淡定,咱们有招。招是什么?听我慢慢说来准备:两部手机(其中一部要有可上网的sim卡),一台电脑(我这里用mac)步骤:重要的第一步
2022-05-08 10:32:02 2332
原创 【podspec】cocoapods 库中头文件存在多层嵌套
以一个podspec开始聊#一个podspec文件包含一个Spec和若干个subspec,podfile可以引入整个podspec或subspecPod::Spec.new do |s| #Pod的名称,必填,如Podfile中pod 'AFNetworking',AFNetworking就是name s.name = "MyLibrary" s.version = "0.0.1" #版本,必填 #简介,必填 s.summary = "
2022-03-14 20:13:11 6023
原创 【环形链表】环形链表一之判断有环\环形链表二之找出开始入环的第一个节点
这里写自定义目录标题环形链表两题环形链表一之判断有环题目描述:解题思路:细节代码:推导:环形链表二之找出开始入环的第一个节点题目描述:解题思路:代码:推导:环形链表两题环形链表一之判断有环题目描述:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情
2022-03-05 14:23:57 210
原创 【工具】【数据库】Mac版DBeaver打开sqlite纪实
1、点击窗口,选中数据库导航,显示出左侧的数据库导航窗口2、 点击这个带加号的插座按钮3、选中sqlite4、注意这里要把连接类型修改为测试
2022-02-09 18:49:35 2166
原创 【约束优先级问题二】动态高度cell
效果图:注意:estimatedRowHeightrowheight = UITableViewAutomaticDimension#pragma mark - lazy-(UITableView *)tableView{ if(!_tableView){ _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size...
2022-01-29 17:57:03 1774
原创 【约束优先级问题一】AutoLayout中的Content Hugging Priority和 Content Compression Resistance Priority
这两个优先级属于AutoLayout的一些高级的用法。主要看一下AutoLayout中的Content Hugging Priority以及Content Compression Resistance Priority这两个优先级。下方我们先来简单的看一下这两个优先级的涵义:Content Hugging Priority:直译成中文就是“内容拥抱优先级”,从字面意思上来看就是两个视图,谁的“内容拥抱优先级”高,谁就优先环绕其内容。稍后我们会根据一些示例进行介绍。Content Com
2022-01-29 17:05:59 559
原创 【CVPixelBufferRef】添加滤镜的方法
其他两篇【滤镜】中的MFPixelBufferHelper即在如下地址的demo中的utils中参考:https://github.com/lmf12/blog-demo/tree/master/testVideoFilter镜像地址:https://gitee.com/allanGold/blog-demo/tree/master/testVideoFilter
2022-01-22 17:06:01 473
原创 【滤镜】CVPixelBufferRef处理成黑屏帧
注意点:1、processFrame:方法中 resultPixelBuffer避免内存暴涨的写法@interface VideoProcessingManager ()@property (nonatomic, strong) MFPixelBufferHelper *pixelBufferHelper;@property (nonatomic, assign) CVPixelBufferRef resultPixelBuffer;@end@implementation Vid.
2022-01-22 16:10:40 2176
原创 【滤镜】CVPixelBufferRef处理成黑屏+水印
注意点:1、resultPixelBuffer属性set方法写法2、uiElement懒加载方式,以及在init方法中进行预懒加载3、GPUImageAlphaBlend的用法,disableSecondFrameCheck,这样只是在需要更新水印的时候检查更新就不会调用很多次4、注意GPUImageUIElement的这种写法 __unsafe_unretained GPUImageUIElement *weakOverlay = uiElement; ...
2022-01-22 15:44:54 779
原创 【打印枚举】借助lldb的po在控制台输出枚举名字
背景:有时候,为了在控制台观察某一个状态枚举的变化,需要把枚举变量的值打印在控制台,但是通过NSLog或者print等系统方法或者函数,打印出来的枚举是数字,不直观调研实验:1、发现通过lldb的命令po 枚举变量的时候,控制台打印出来的是枚举的名字2、而断点又有编辑的功能解决办法:借助以上两点调研结果只需要在需要打印枚举变量的地方,打上断点,action处键入po someEnumVar,同时勾选遇到当前断点直接执行不断住的复选框trick:如果还想要观察其他变量和
2022-01-18 11:56:23 626
原创 【踩坑】iOS 状态栏没显示问题
【踩坑】iOS 状态栏没显示问题前提:借鉴Dokit(滴滴的辅助工具框架)的全局浮窗,封装了一个全局浮窗,用于全局都显示,windowLevel设置成了UIWindowLevelStatusBar + 200.f现象:iPhone7上状态栏没有显示出来,iPhone12上状态栏显示出来原因分析:iPhone7上不是状态栏没显示,猜测是状态栏被盖住了暂时的解决方案:windowLevel设置成UIWindowLevelNormal + 1.0f,层级只比工程的k
2022-01-16 15:49:29 2297
原创 【踩坑】iOS 动态库嵌套动态库
工程现状:每个功能模块都做成了动态库frameworkpodfile中 以每个动态库的target的方式把工程是以WorkSpace的方式组织起来直观看就是在工程最左边窗口出现一堆蓝色工程图标问题出现了假如其中一个动态库要依赖一个第三方提供的动态库正确引入方式:在主app内引入这个第三方动态库framework,并且sign & embeded,在自己的动态库中通过add file的方式引入,但是 Do Not Embeded,即不嵌入还有一个方式:就是把自己的动
2021-12-31 15:34:33 2905
原创 【提示动画】左右滑动或者说左右晃动
// 利用关键帧实现一种类似(渐入)渐出的效果 CAKeyframeAnimation *kfa = [CAKeyframeAnimation animation]; kfa.keyPath = @"transform.translation.x"; CGFloat s = 16;// kfa.values = @[@(-s),@(0),@(s),@(0),@(-s),@(0),@(s),@(0)]; kfa.values = @[@(-16),@(0),@(12).
2021-12-15 17:25:13 567
原创 一张图片实现无限滑动(类似走马灯)效果
上代码@interface ViewController ()@property (nonatomic, strong) UIImageView *iv1st;@property (nonatomic, strong) UIImageView *iv2nd;@end@implementation ViewController-(void)startMove{ UIImageView *iv1st = [[UIImageView alloc] init];
2021-12-11 21:52:25 1645
原创 采用masonry布局时同时设置圆角和渐变颜色
UIView *tipContainer = [[UIView alloc] init]; [self.view addSubview:tipContainer]; [tipContainer mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(@(0)); make.right.equalTo(displayImageContainer); make....
2021-12-01 10:39:17 1963
原创 iOS 保留1位小数或者保留2位小数 不四舍五入
// 这是保留2位小数,并且不会四舍五入NSNumber *number = @(1.988888);NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];[formatter setPositiveFormat:@"###0.00"];formatter.maximumFractionDigits = 2;formatter.roundingMode = NSNumberFormatterRoundDown;NSLog.
2021-11-14 18:02:04 6165
原创 UIStackView参考
UIStackView Tutorial for iOS: Introducing Stack Views | raywenderlich.comhttps://www.jianshu.com/p/213702004d0dhttps://www.jianshu.com/p/4ae8457d14b0AutoLayout 自动布局
2021-11-08 10:10:44 372
原创 NSString使用boundingRectWithSize计算高度时,高度不准问题
计算完的高度可以使用ceilf(height)处理一下注:ceilf用于线上取整
2021-10-13 14:08:27 420
原创 github忘记邮箱找回办法
如果记得用户名的话,通过 github.com/用户名 这种方式进入主页找到一个非fork的仓库,也就是你自己创建的仓库点击49c25f8 进入单个commit页面url形如https://github.com/用户名/项目名/commit/49c25f82b0dfc1b330f5dbde96e128bb2378e在这个url后面拼接字符串 ".patch"(注意不用带引号),回车邮箱就位于From:这一行...
2021-08-31 21:31:22 4602
原创 约瑟夫环(递归实现)理解过程
推理过程这里假设我们希望永远都是0位置先报数,这个假定逻辑很重要。按照这个假定逻辑,我们会对整个环形链表逆时针旋转m个位置,也就是3个单位,位置3移动到了0位置。这样就把10人游戏的第二轮,转换成了9人游戏的第一轮。推理:假如知道了9人游戏中谁会留在最后,是不是就可以推导出10人游戏谁可以留到最后这时会有一个想法:旧位置3 是否是 新位置0 加3 得到的?但是,因为是环状结构,旧位置 的1 通过新位置8 加3 的方式是不能直接得出来的观察一下加3的处理结果:新位置8.
2021-08-29 16:57:23 451
原创 【技巧】Xcode中如何方便的查看宏展开
为了方便对比,点击这个按钮,Xcode的编辑区会分屏成两个编辑区然后光标定位到右侧的编辑区,Product->Perform Action->Preprocess xxx右侧的编辑区用宏的地方就会把宏展开
2021-08-12 18:10:05 1100
原创 flutter控件(二)
1、MainAxisSize.min的妙用Row( mainAxisSize: MainAxisSize.min, children: [ Icon(Icons.star, color: Colors.green[500]), Icon(Icons.star, color: Colors.green[500]), Icon(Icons.star, color: Colors.green[5.
2021-07-19 15:07:57 621 1
原创 flutter小坑(一)创建工程时的版本影响编译检查
自从flutter2.2.2开始支持空安全,我也升级了flutter版本来玩空安全。结果坑出现了,因为公司其他项目是用2.0.6创建的我用flutter2.2.2创建了一个新测试工程。然后降回2.0.6,其他项目中的轮子,拉到了这个新测试工程,然后就是各种null报错,瞬间懵逼。明明其他项目用的好好的。一度怀疑我降版本使用的方式不对,把同事的flutter都复制到了我的电脑上。但是,依然报错。事后捋了一下整个过程,怀疑是2.2.2创建的工程中带了什么对应版本的东西在工程中,于是采用2.0
2021-07-07 11:09:12 148
原创 flutter textfield修改高度同时设置contentPadding时导致垂直不居中
TextField( style: TextStyle(color: Colors.white), cursorColor: Colors.white, decoration: InputDecoration( // 去掉输入框底部线 focusedBorder: OutlineInputBorder( .
2021-07-02 17:59:42 1500 2
原创 flutter 的热重载、热重启(第一招)
对一个变量赋值进行注释 hotReload不管用,hotRestart管用对一个变量赋值打开注释 hotReload管用
2021-07-01 18:11:07 348 1
原创 flutter Image 控件
当使用Image.asset加载本地图片时1、图片不支持热加载2、本地图片的名字后面必须带后缀(png、jpeg等)否则报错:Unable to load asset: images/3、主资源默认对应于1.0倍的分辨率图片。看一个例子:…/my_icon.png …/2.0x/my_icon.png …/3.0x/my_icon.png在设备像素比率为1.8的设备上,.../2.0x/my_icon.png将被选择。对于2.7的设备像素比率,.../3.0x/my_icon.
2021-06-30 18:59:00 209 2
原创 flutter create创建的工程引入cocoapods,pod install报错
报错信息diff: /Podfile.lock: No such file or directorydiff: /Manifest.lock: No such file or directoryerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.flutter版本2.2.2cocoapods版本1.10.1尝试过删
2021-06-25 10:54:31 561
原创 flutter(dart) 如何查看一个变量类型、如何判断一个变量类型
var m = {};if (m is Map) { print("m 是Map类型")}print(m.runtimeType)
2021-06-24 11:02:18 7720 2
原创 几种podspec文件记录(pod install时显示进度百分比)
AlipaySDK-iOSsource 给的是key是http,源给的是zip地址{ "name": "AlipaySDK-iOS", "version": "15.7.9", "summary": "支付宝官方SDK", "homepage": "https://open.alipay.com/platform/home.htm", "license": { "type": "MIT", "file": "LICENSE" }, "authors"..
2021-06-23 17:09:41 660
原创 【iOS】如何查看NSArray中括号取值真正调用的方法
设置XcodeDebug -> Debug Workflow -> Always Show Disassembly比如找@[@"1"][0]真正调用的方法可得到以下汇编参考:https://blog.51cto.com/youngsoft/2069200
2021-06-01 11:33:14 219
原创 【flutter】flutter版本升级和降级
比如要降到1.22.5执行命令flutter downgrade 1.22.5如果又要恢复到最新版本执行命令flutterupgrade不必再去通过git reset到指定的commit来实现
2021-04-28 16:08:43 2101 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人