
iOS
allanGold
这个作者很懒,什么都没留下…
展开
-
Xcode 15 Sandbox: rsync(xxxx) deny(1) file-write-create
新版本的Xcode 15 编译报该错误 右侧工具栏 项目的workspace 和 pod的 space 都选择为15.0 即可。设置里面搜索user 把User Script Sanboxing 改为NO。原创 2024-03-28 15:09:49 · 1610 阅读 · 0 评论 -
【IAP】【内购】沙盒支付 什么场景下可用--记录
【IAP】【内购】沙盒支付 什么场景下可用--记录原创 2023-03-10 17:03:12 · 2198 阅读 · 0 评论 -
【词云】iOS如何实现词云
词云效果原创 2023-03-07 18:22:02 · 417 阅读 · 0 评论 -
唤起testFlight、唤起AppStore
唤起TestFlight、唤起AppStore原创 2022-09-08 13:57:52 · 373 阅读 · 0 评论 -
【UITableView】坑二 iOS15上TableView顶部多了一部分偏移量
UITableView在iOS上奇怪的偏移量,sectionHeaderTopPadding原创 2022-06-28 10:48:10 · 1662 阅读 · 0 评论 -
【UITableView】坑一:tableView:heightForHeaderInSection:方法不执行
iOS11后tableView:heightForHeaderInSection:代理方法方法不执行原创 2022-06-28 10:42:13 · 598 阅读 · 0 评论 -
私有pod库创建过程
1、创建pod的git仓库2、把仓库的clone地址复制一下3、pod repo可以看到本地所有的repo,包括path也就是文件路径也可以看到4、pod repo add PrivatePods clone地址注意:官方创建私有pod文档:https://guides.cocoapods.org/making/private-cocoapods.html这个命令执行完毕后...原创 2020-02-28 14:21:52 · 684 阅读 · 0 评论 -
【滤镜】CVPixelBufferRef处理成黑屏+水印
注意点:1、resultPixelBuffer属性set方法写法2、uiElement懒加载方式,以及在init方法中进行预懒加载3、GPUImageAlphaBlend的用法,disableSecondFrameCheck,这样只是在需要更新水印的时候检查更新就不会调用很多次4、注意GPUImageUIElement的这种写法 __unsafe_unretained GPUImageUIElement *weakOverlay = uiElement; ...原创 2022-01-22 15:44:54 · 850 阅读 · 0 评论 -
【打印枚举】借助lldb的po在控制台输出枚举名字
背景:有时候,为了在控制台观察某一个状态枚举的变化,需要把枚举变量的值打印在控制台,但是通过NSLog或者print等系统方法或者函数,打印出来的枚举是数字,不直观调研实验:1、发现通过lldb的命令po 枚举变量的时候,控制台打印出来的是枚举的名字2、而断点又有编辑的功能解决办法:借助以上两点调研结果只需要在需要打印枚举变量的地方,打上断点,action处键入po someEnumVar,同时勾选遇到当前断点直接执行不断住的复选框trick:如果还想要观察其他变量和原创 2022-01-18 11:56:23 · 675 阅读 · 0 评论 -
【踩坑】iOS 状态栏没显示问题
【踩坑】iOS 状态栏没显示问题前提:借鉴Dokit(滴滴的辅助工具框架)的全局浮窗,封装了一个全局浮窗,用于全局都显示,windowLevel设置成了UIWindowLevelStatusBar + 200.f现象:iPhone7上状态栏没有显示出来,iPhone12上状态栏显示出来原因分析:iPhone7上不是状态栏没显示,猜测是状态栏被盖住了暂时的解决方案:windowLevel设置成UIWindowLevelNormal + 1.0f,层级只比工程的k原创 2022-01-16 15:49:29 · 2389 阅读 · 0 评论 -
【踩坑】iOS 动态库嵌套动态库
工程现状:每个功能模块都做成了动态库frameworkpodfile中 以每个动态库的target的方式把工程是以WorkSpace的方式组织起来直观看就是在工程最左边窗口出现一堆蓝色工程图标问题出现了假如其中一个动态库要依赖一个第三方提供的动态库正确引入方式:在主app内引入这个第三方动态库framework,并且sign & embeded,在自己的动态库中通过add file的方式引入,但是 Do Not Embeded,即不嵌入还有一个方式:就是把自己的动原创 2021-12-31 15:34:33 · 3181 阅读 · 0 评论 -
一张图片实现无限滑动(类似走马灯)效果
上代码@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 · 1688 阅读 · 0 评论 -
采用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 · 2097 阅读 · 0 评论 -
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 · 6345 阅读 · 0 评论 -
iOS开发·UIWindow与视图层级调整技巧
iOS开发·UIWindow与视图层级调整技巧(makeKeyWindow,resignKeyWindow,makeKeyAndVisible,keyWindow,windowLevel,UIWindowiOS开发过程中,多人开发或者导入第三方框架的时候,可能碰到UIWindow层级冲突的问题。例如,很多人习惯在keyWindow上添加一个自定义浮层视图,但是,当自己或者其它第三方框架曾经调高过其它自定义UIWindow属性windowLevel,或者有其它同级windowLevel的UIWindo原创 2020-09-23 18:48:22 · 2875 阅读 · 0 评论 -
【atomic】再谈从atomic关键字说到多线程安全(内含iOS给代码加锁方法总结)
再谈从atomic关键字说到多线程安全(内含iOS给代码加锁方法总结)atomic是什么原子性:在默认情况下,由编译器所合成的方法会通过锁定机制确保其原子性(atomicity)。如果声明属性时不显式地声明nonatomic关键字,那这个属性就是“原子的”(atomic)。如果属性具备nonatomic特质,则不使用同步锁。atomic 和 nonatomic这对属性关键字是和线程安全挂钩的,虽然 atomic 属性关键字会给该 property 的 getter和setter方法加锁,但它也不能保原创 2020-08-26 14:39:02 · 1233 阅读 · 0 评论 -
新项目启动时的准备
先添加configuration 这个是针对蓝色工程文件的 不是针对target的,即选中project文件在info中才能添加然后git init然后配置.gitignore然后在pod init然后再pod install...原创 2019-11-08 18:13:45 · 343 阅读 · 0 评论 -
iOS 搞定UIButton的文本与图片的布局
UIButton内部文本和图片的布局是我们日常代码中,不可缺少的部分,按钮默认左边图片右边文本,那要实现左边文本,右边图片,我们该怎么解决呢,上面图片,下面文本又该怎么办呢其实很简单,今天总结下,目前主要用两种方式,一种就是重写按钮,另一种就是通过setTitleEdgeInsets和setImageEdgeInsets方法解决下图是按钮默认情况下的图文布局 左边文本,右边图片...转载 2016-09-09 14:03:39 · 1083 阅读 · 0 评论 -
iOS 获取设备唯一标识
利用keyChain和UUID永久获得设备的唯一标识开发者可以在应用第一次启动时调用一 次,然后将该串存储起来,以便以后替代UDID来使用。但是,如果用户删除该应用再次安装时,又会生成新的字符串,所以不能保证唯一识别该设备。这就需要各路高手想出各种解决方案。所以,之前很多应用就采用MAC Address。但是现在如果用户升级到iOS7(及其以后的苹果系统)后,他们机子的MAC Addres转载 2016-09-06 11:14:10 · 1581 阅读 · 0 评论 -
iOS KVO新姿势
KVO,全称为Key-Value Observing,是iOS中的一种设计模式,用于检测对象的某些属性的实时变化情况并作出响应。网上广为流传普及的一个例子是利用KVO检测股票价格的变动这个例子作为扫盲入门还是可以的,但是当应用场景比较复杂时,里面的一些细节还是需要改进的,里面有多个地方存在crash的危险。本文旨在逐步递进深入地探讨出一种目前比较健壮稳定的KVO实现方案,弥补网上大部分教程的不足!转载 2016-09-05 18:01:17 · 542 阅读 · 0 评论 -
iOS NSBundle(一)
NSLog(@"plist文件:%@",[[NSBundlemainBundle] infoDictionary]);plist文件:{ BuildMachineOSBuild = 15F34; CFBundleDevelopmentRegion = en; CFBundleExecutable = Test; CFBundl原创 2016-08-23 14:28:33 · 622 阅读 · 0 评论 -
直播
http://lib.youkuaiyun.com/base/liveplay转载 2016-08-31 15:55:15 · 476 阅读 · 0 评论 -
iOS UITextView根据输入的文字自动变换高度
self.contentTextView = [[UITextView alloc]initWithFrame:CGRectMake((kMainBoundsWidth-250)/2, kMainBoundsHeight/2-50, 250, 39)]; self.contentTextView .layer.cornerRadius = 4; self.contentTextView ...转载 2016-09-02 17:30:01 · 1189 阅读 · 0 评论 -
iOS FMDB 事务的理解
[queue inTransaction:^(FMDatabase *db, BOOL *rollback) { [db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:1]]; [db executeUpdate:@"INSERT INTO myTable VALUES (?)",原创 2016-09-05 15:49:34 · 1205 阅读 · 0 评论 -
UIWindow
http://www.jianshu.com/p/80af18780bd1http://blog.youkuaiyun.com/wu_shu_jun/article/details/9134411转载 2016-08-16 18:08:49 · 372 阅读 · 0 评论 -
NSJSONSerialization JSONObjectWithData:
NSData *data1 =nil;[NSJSONSerializationJSONObjectWithData:data1 options:1error:nil];注意这里 的data参数不可以为空,否则会崩溃。原创 2016-08-14 11:36:40 · 2895 阅读 · 0 评论 -
关于CGImageCreateWithImageInRect
[UIImage imageWithCGImage:CGImageCreateWithImageInRect(, )]注意这里的rect是相对于 所给图片的真实像素而言的,比如图片的像素是100x100,如果要得到宽度为这个图片宽度一半的新图片,rect应该写成(0, 0, 50, 100)原创 2016-08-12 21:05:03 · 5316 阅读 · 0 评论 -
Xib的一些发现
这是给xib的一个使用方法,先做个笔记原创 2016-08-09 11:24:31 · 281 阅读 · 0 评论 -
iOS开发 第三方资源篇
http://www.cocoachina.com/ios/20160719/17078.html转载 2016-07-20 10:02:33 · 362 阅读 · 0 评论 -
iOS 图片拉伸
假如下面的一张图片,是用来做按钮的背景图片的,原始尺寸是(128 * 112)我们通过代码将这张图片设置为按钮的背景图片,假如我们将创建好的按钮的宽高设置为:(W=200, H=50)代码如下://// ViewController.m// iOS图片拉伸总结//// Created by Sunshine on 15/6/29.// Copyright (c转载 2016-07-18 16:26:35 · 499 阅读 · 0 评论 -
CAShapeLayer的贝塞尔路径动画
@IBOutlet weakvar loadingView: UIView! let ovalShapeLayer:CAShapeLayer = CAShapeLayer() @IBOutletweak var complexLoadingView:UIView! let anotherOvalShapeLa原创 2016-07-08 13:48:35 · 640 阅读 · 0 评论 -
iOS 截屏
UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];UIGraphicsBeginImageContextWithOptions(screenWindow.frame.size, NO, 0.0); // no ritinaCGContextRef context = UIGraphicsGetCurr转载 2016-07-06 13:27:31 · 471 阅读 · 0 评论 -
iOS AudioSession详解 Category选择 听筒扬声器切换kAudioSessionCategory_MediaPlayback
选择一个CategoryAVAudioSessionCategoryAmbient 或 kAudioSessionCategory_AmbientSound——用于非以语音为主的应用,使用这个category的应用会随着静音键和屏幕关闭而静音。并且不会中止其它应用播放声音,可以和其它自带应用如iPod,safari等同时播放声音。注意:该Category无法在后台播放声音AVAud转载 2016-07-05 11:26:58 · 1440 阅读 · 0 评论 -
无入侵的开屏广告插入方式
http://www.cocoachina.com/ios/20160628/16828.htmlhttp://blog.youkuaiyun.com/u010461658/article/details/50487959https://github.com/CoderZhuXH/XHLaunchAd转载 2016-06-28 09:53:40 · 923 阅读 · 0 评论 -
巧用UIResponder进行事件传递
http://www.cocoachina.com/ios/20160628/16814.html转载 2016-06-28 09:49:54 · 410 阅读 · 0 评论 -
OS X 和 iOS 下32/64位操作系统下 不同类型所在的内存字节数
iOS7过后部分苹果机就开始从32位操作系统转到64位了,所以部分数据类型的大小也有变化转载 2016-06-27 14:37:10 · 571 阅读 · 0 评论 -
swift中关于String类型的successor()
let text = "123"print(text)print(text.substringToIndex(text.startIndex.successor()))//把原先的空区间变成闭区间print(text.substringFromIndex(text.startIndex.successor()))//把原先的闭区间变成开区间输出结果:原创 2016-06-20 17:54:25 · 604 阅读 · 0 评论 -
伪3D效果的实现
3D翻转因为有3D翻转动画效果的UIView比较多,而且有UILabel也有UIImageView,所以我们可以提炼成一个方法,将目标UIView和数据源作为参数:func cubeAnimate(targetView: UIView, flightInfo: String) { // 判断UIView的具体实现类 if targetView.isKi转载 2016-06-17 13:32:27 · 2507 阅读 · 0 评论 -
iOS: 使用CGContextRef,CGPath和UIBezierPath来绘画
这三种东西:CGContextRef,CGPath和UIBezierPath。本质上都是一样的,都是使用Quartz来绘画。只不过把绘图操作暴露在不同的API层面上,在具体实现上,当然也会有一些细小的差别。我们将主要使用这3个类型,绘制出同一张图片,如下,一个笑脸:首先使用Quartz的CGPath来做这张图。很简单,首先创建用于转移坐标的Transform,然转载 2016-06-17 10:39:51 · 455 阅读 · 0 评论 -
setNeedsDisplay和setNeedsLayout
1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews, 就可以 处理子视图中的一些数据。综转载 2016-06-16 10:03:31 · 539 阅读 · 0 评论