- 博客(82)
- 收藏
- 关注

原创 iOS 如何用原生代码实现app的热更新,且能顺利通过app store审核
目前,流行的热更新框架绝大多数都被Apple审核团队给禁止使用。为了能更好的实现app的热更新功能,现基于iOS纯原生代码书写了一套热更新功能。具体的实现思路如下: 下面我是按照基于Cordova的混合式开发项目实现的app热更新功能这种热更新的思路适用于所有的iOS app开发。上面只是我举的一个例子,具体大家可以根据我这个思路举一反三,不同的项目实现的方式上都是大同小异。注:请大家不要用这种热更新方法去上架一些违规的app,我之所以把这种思路和源码贡献出来是当一个线上的项目出...
2020-12-09 13:39:01
3352
原创 iOS 如何用一个IPA包测试多个环境
在我们的iOS日常开发中,经常会有多个环境(开发环境、测试环境、预发布环境、生产环境等),为了配合测试同事方便测试,同时为减去开发人员频繁打包,提高开发和测试的效率。
2022-08-05 20:28:20
816
原创 ios 给UIView类控件添加渐变颜色的注意事项
上面的这种写法是可以实现按钮背景颜色的渐变的效果,但是会有问题,你会发现按钮上面的文字确不见了。为什么会出现这种问题,这个我们需要理解UIView与layer的区别。[_verifyBtn setTitle:@"同意" forState:UIControlStateNormal];通常在我们的日常开发中,会遇到一下需求,要实现某个控件的背景色是渐变效果的。例如:实现一个按钮的渐变色。[_verifyBtn setTitle:@"同意" forState:UIControlStateNormal];...
2022-08-05 16:49:26
1405
原创 swift的类与结构体
swift的类和结构体在使用中相似的,在swift的开发中经常会使用到,下面我们就一起来探讨一下swift中的类与结构体有何区别?先看下面的代码:struct XCTeacher{ varage:Int varname:String}classXCTeacher{ varage:Int varname:String//初始化 init(age:Int, name:String){ self.ag...
2021-12-27 19:55:21
544
原创 iOS 15的新特性
关于iOS15新版本系统导航栏默认是透明状态,解决办法有:if (@available(iOS 15.0, *)) { UINavigationBarAppearance *barApp = [[UINavigationBarAppearance alloc] init]; barApp.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight]; self.n...
2021-10-20 18:25:56
1185
原创 关于刷新UITableView中cell抖动以及点击cell上的按钮cell自动往上跳动问题
在iOS13之前的系统但我们点击cell中的按钮或者刷新cell的时候会发生cell自动往上跳动的想象,经过多方研究,解决方法如下:设置UITableView的下列属性即可解决这个问题self.tableView.estimatedRowHeight = 0;self.tableView.estimatedSectionHeaderHeight = 0 self.tableView.estimatedSectionFooterHeight = 0;...
2021-08-10 17:29:26
1267
原创 iOS关于data.bin的文件的解析、存储、读取
// 解析data.bin文件,并存储图片 if([self isFileExist:@"data.bin"]) {//读取本地的“data.bin”二进制文件中的内容NSData * data =[NSData dataWithContentsOfFile:[NSString stringWithFormat:@"%@/data.bin",unzipPath]]; NSLog(@"获取到的data:%@"...
2021-07-23 16:48:43
2133
原创 ios 关于常见的数据筛选过滤
在讲关于数据筛选过滤之前,我们先讲一下iOS开发中常用的数据存放容器,分别有集合、数组、字典,还有常用的一些数据本地化的一些数据存储操作,例如:cordata、sql、fmdb、序列化、userdefule、钥匙串、plist文档存储...
2021-07-23 16:27:24
3002
1
原创 关于iOS开发如何获取相应的手机或者ipad的ip
第一种方法是用系统api的方式获取,如下#include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include "GetAdd
2021-04-29 14:04:01
323
原创 iOS关于颜色的调配问题
1、首先打开xocde建一个UIClolor的分类UIColor+Hex.h//// UIColor+Hex.h// XiaoYuanSanWei//// Created by QMAP on 16/1/28.// Copyright © 2016年 qmap01. All rights reserved.//#import @interfa
2021-04-29 14:03:39
171
原创 iOS 关于使用masonry来对scrollView控件进行约束适配需要重点注意的点
因为我们在日常的开发中,通常会使用scrollView控件来进行界面的滑动显示,但是但我们在利用masonry来对scrollView控件进行约束的时候,滑动界面会出现卡顿或者滑不上去的现象。出现这个现象的原因是因为没有对_scrollView.pagingEnabled = NO;进行设置,设置之后即可解决这个问题...
2021-04-29 12:50:57
348
原创 iOS 关于带html标签的字符串如何进行加载显示
例如,类似这样的带html标签的字符串如何进行加载显示:NSString *str = @"<ul>\n<li>\n<p>1、如何成为XXXXX用户<br \/>\n<\/li>\n<li>扫码注册完成即可成为XXXXX用户。<\/p><\/li>\n<li>\n<p>2、我该如何下载与注册App\n<\/li>\n<li>第一步:手机“扫一扫”推荐人的二...
2021-04-29 12:35:04
713
原创 如何获取iPhone 各机型以及系统的状态栏高度进行适配
在iPhone x以前苹果手机的各机型状态栏高度均为20;在iPhone x以后苹果新推出刘海屏机型,苹果的各机型状态栏高度均为44。但是今年苹果随着苹果新操作系统iOS 14的推出导致了iPhone x以后的部分苹果刘海屏机型状态栏的高度的改变有的为47,有的为48,有的还是44。目前这个更改不知道是ios 14.2的bug,还是说以后苹果会把刘海屏机型的状态栏的高度依然全部改成44。具体如下:设备 状态栏高度iPhone X以前的机型 20iPhone XR/11 48...
2020-12-03 09:31:48
2598
1
原创 关于在iOS 14系统中使用UIProgressView控件出现的兼容性问题及解决办法
随着新一代iPhone 12的发布,iOS14系统也正式开启使用。在最近的开发工作中,我发现进度条UIProgressView控件在iOS 14上面使用的控件位置会发生偏移(相对以前的iOS系统而言)。具体来说,就是进度条UIProgressView控件在iOS 14 上的左侧x坐标和高度y坐标发生偏移(相对于以前x坐标向右偏移一个像素位点,高度y坐标向下偏移了一个像素位点)。 上代码举例以及解决办法如下:self.loadtimeView.frame = CGRectMake(AliyunPla.
2020-10-19 17:49:49
993
转载 iOS 跳转到App Store下载或评论
//跳转到app在AppStore页面 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@", kPopolookAppleId]]]; //跳转到评分 NSString *s...
2018-04-10 14:34:04
988
原创 iOS 隐藏电量信息、信号等状态信息状态栏
在控制器添加如下代码即可:1、//隐藏状态栏- (BOOL)prefersStatusBarHidden{ return YES;} 2、单独修改状态栏背景颜色方法:例如:[self setStatusBarBackgroundColor:[UIColor whiteColor]];/** 设置状态栏背景颜色 @param color 设置颜色 */- (void)setStatusBarB...
2018-04-04 14:15:43
4202
原创 ios 如何让银行卡明文字符显示变成前4位和后4位是明文,中间4位是*的字符
-(NSString *)returnBankCard:(NSString *)BankCardStr{ NSString *formerStr = [BankCardStr substringToIndex:4]; NSString *str1 = [BankCardStr stringByReplacingOccurrencesOfString:formerStr wi
2017-12-25 17:41:10
2739
原创 WKWebView js回调oc代码
//// CreditSesameViewController.m// JiGuangRong//// Created by xiaochao on 2017/10/20.// Copyright © 2017年 xuntou. All rights reserved.//#import "CreditSesameViewController.h"#im
2017-10-20 18:54:56
1578
转载 iOS 开发全能工具箱
iOS 开发全能工具箱iOS 开发工具箱是一系列的非常好用的 iOS 开发工具的集合,里面包括了网站,在桌面/移动设备上的应用,还有些后端(Back-end)的服务。我会尽力把这些工具分好类,如果有新添加近来的工具,我会放在 NEW 类别下。这个列表是不完整的,我希望会有更多更酷更好用的开发工具添加近来。如果你有任何的建议或者推荐,你可以通过这些方式告诉我:Email,
2017-10-19 11:37:37
781
转载 iOS 获取设备唯一标示符的方法
本文转载自:http://www.jianshu.com/p/7ad22ca88b83在开发中会遇到应用需要记录设备标示,即使应用卸载后再安装也可重新识别的情况,在这写一种实现方式——读取设备的UUID(Universally Unique Identifier)并通过KeyChain记录。首先iOS中获取设备唯一标示符的方法一直随版本的更新而变化。iOS 2.0版本以后UID
2017-06-30 17:14:01
487
转载 浅谈你对面向对象编程的认识
面向对象编程强调抽象、封装、继承、多态抽象:我们在定义一个抽象类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象。你可以这样来想,抽象就是一个类的最基础的东西,比方说人,他的抽象类可能就是都从母体出来,有皮肤。但具体到你是黑人,白人,还得黑人类,白人类来说明 。封装:就是将类的属性包装起来,不让外界轻易的知道他的内部实现
2017-06-26 14:39:44
783
转载 iOS layout机制相关方法
iOS layout机制相关方法- (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————-- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayout——————–- (void)setNeedsDisp
2017-06-20 16:48:08
297
转载 RAC基础学习一:信号和订阅者模式
我们在领略到RAC的强大和不可思议的时候,需要思考两个地方:1、它是如何实现的?第二个问题则更有难度:2、它是如何想到这样设计的?这里我们先尝试研究第一个问题,它是如何实现的,分析主要的脉络。在RAC里面,我们所有围绕的东西无非主体是这几样:信号(signal)、订阅者(subscriber)、还有关于信号的生产者实体、信号的消费者,这几个的关系。我们为什么使用RAC,因为它解耦太好了
2017-06-15 16:07:04
605
转载 IOS响应式编程框架ReactiveCocoa(RAC)使用示例
ReactiveCocoa是响应式编程(FRP)在iOS中的一个实现框架,它的开源地址为:https://github.com/ReactiveCocoa/ReactiveCocoa# ;在网上看了几篇文章,感觉理论讲了很多,但是代码还是看不太懂,于是自己把它github文档上的一些使用的经典示例实现了一下,项目中有需要时可以直接搬过去用,用的熟练了再读源码也比较容易理解。 例1
2017-06-15 15:57:03
536
转载 Xcode 常用快捷键
Xcode 常用快捷键1)文件: command + shift + n 新建项目 command + n 新建文件 command + control + n 新建空文件 command + o 打开文件
2017-06-14 10:16:18
328
转载 优化iOS程序性能的25个方法
1. 用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高
2017-06-13 17:41:54
417
原创 (2020年最新版)App Store 审核指南
App Store 审核指南简介App 正在改变世界,丰富人们的生活,并为像您一样的开发者提供前所未有的创新机会。因此,App Store 已成长为一个激动人心且充满活力的生态系统,正为数百万的开发者和超过十亿的用户提供服务。不管是开发新手,还是由经验丰富的程序员所组成的大型团队,我们都非常欢迎您为App Store 开发 app,并希望能够帮助您了解我们的准则,以确保您的 app 能
2017-03-24 10:03:31
2093
转载 iOS提交AppStore后申请加急审核
iOS提交AppStore后申请加急审核是的,由于最近知名的Xcode后门事件,我们的应用也被感染了。o(╯□╰)o上周四从看到喵神的微博得知第三方Xcode可能被感染后马上查了下,自己用的却是被感染了,于是马上到MAS下载了最新的Xcode7,上海电信你们懂得。不过当时却是没有认识到事情的严重性,直到周日收到经理的电话说我们的应用在AppStore上搜不到,查了下邮件
2017-03-24 09:44:35
3341
转载 iOS与HTML5交互方法总结
摘要看了不少别人写的博客或者论坛,关于iOS与HTML5交互方法大概主要有5种方式:1. 利用WKWebView进行交互(系统API)2. 利用UIWebView进行交互(系统API)3. 苹果的javascriptcore.framework框架;4. 跨平台cordova框架;5. oc第三方WebViewJavascriptBridge关于WKWebView的介绍
2017-02-22 16:08:08
784
转载 让您的Xcode键字如飞
手指在键盘上飞速跳跃,终端上的代码也随着飞舞,是的这确实很酷。优秀的程序员总是这么一群人,他们不拘于现状,不固步自封,他们喜欢新奇的事,他们把自己发挥到极致。指法攻略放下您钟爱的鼠标吧,在前行之中它终会成为你的负累!简记:command 用来导航,控制导航区域alt 控制右边的一些东西,比如Assistant Editor,utility editorControl 编
2017-02-16 17:21:45
273
原创 有关于苹果审核的相关联系方式
1.https://developer.apple.com/contact/app-store/?topic=appeal直接提交申诉理由 (里面还有一起其他功能 如加速审核等.)2.https://developer.apple.com/contact/submit.php开发问题, 貌似也可以问一些审核问题3.https://developer.apple.com/cont
2017-02-16 10:49:23
21410
转载 iOS超全开源框架、项目和学习资料汇总(4)数据库、缓存处理、图像浏览、摄像照相视频音频篇
iOS超全开源框架、项目和学习资料汇总(4)数据库、缓存处理、图像浏览、摄像照相视频音频篇iOS超全开源框架、项目和学习资料汇总(1)UI篇iOS超全开源框架、项目和学习资料汇总(2)动画篇iOS超全开源框架、项目和学习资料汇总(3)网络和Model篇数据库1. FMDB – sqlite的工具, 多线程FMDatabaseQueue
2017-02-14 16:49:34
513
转载 Xcode8 及iOS10适配问题汇总
Xcode8 及iOS10适配问题汇总上点干货,目前得知的一些bug解决汇总:iOS10相册相机闪退bughttp://www.jianshu.com/p/5085430b029fiOS 10 因苹果健康导致闪退 crashhttp://www.jianshu.com/p/545bd1bf5a23麦克风、多媒体、地图、通讯录ios10相机等崩溃http://www.
2016-12-28 14:43:34
1788
转载 iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用
在iOS开发中,经常需要调用其它App,如拨打电话、发送邮件等。UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的url参数的模式来调用不同的App。通过openURL方法可以调用如下应用:调用谷歌地图(Google Maps)调用邮件客户端(Apple Mail)拨号(Phone Number)调用短信(SMS)调用浏览器(Saf
2016-12-19 15:06:43
1006
转载 关于iPhone屏幕尺寸、分辨率及适配
1.iPhone尺寸规格设备iPhone宽Width高Height对角线Diagonal逻辑分辨率(point)Scale Factor设备分辨率(pixel)PPI3GS2.4 inches (62.1 mm)4.5 inches (
2016-12-13 13:16:43
860
转载 Xcode插件管理工具Alcatraz 的下载使用
简介Alcatraz 是一个帮你管理 Xcode 插件、模版以及颜色配置的工具。通过Alcatraz来使用插件是一件非常方面的事情,我们无需再去Github上面费劲的搜索这方面的资源,因为Alcatraz已经囊括了大部分开源出来的插件。安装和删除使用终端输入如下的命令行来安装 Alcatraz:mkdir -p ~/Library/Application\ Support/Deve
2016-12-12 14:02:08
466
转载 ios 简单的打包方法
按照下面的步骤走,就可以打包成功,我不说各种原因,只讲操作步骤:简单粗暴!!!首先你得有一个苹果开发者账号。要是没有,就自己申请一个。注意:在创建app IDs 还有描述文件的时候,需要添加的是发布版本,就是ad hoc里面的版本,而不是简单的开发版本。如下图:(证书与描述文件都需要发布版本的)可以先忽略,一会在创建证书的时候再看1.创建一个ipaDemo工
2016-12-12 14:00:25
554
转载 排序算法总结
排序算法总结 发表于 2016-11-20 | 3条评论 | 阅读次数 1401这是《大话数据结构》第九章排序算法的知识点总结。排序的基本概念与分类假设含有n个记录的序列为r1,r2,⋯,rn,其相应的关键字分别为k1,k2,⋯,kn,需要确定1,2,⋯,n的一种排列$p_1,p_2,\cdots,pn,使其相应的关键字满足k{p1}
2016-11-23 13:43:17
278
转载 各大排序算法的Objective-C实现以及图形化演示比较
用Objective-C实现几种基本的排序算法,并把排序的过程图形化显示。其实算法还是挺有趣的 ^ ^.选择排序冒泡排序插入排序快速排序选择排序以升序为例。选择排序比较好理解,一句话概括就是依次按位置挑选出适合此位置的元素来填充。暂定第一个元素为最小元素,往后遍历,逐个与最小元素比较,若发现更小者,与先前的”最小元素”交换位置。达到更新最小元素的目的。一趟遍历完成后
2016-11-22 15:37:32
904
原创 iOS 关于app上线app store由于定位功能被拒解决方案
以下是xcode8打包上传app store的解决方案:1、首先你应该在你的工程的info.plist文件里面加上相应的定位功能的说明,以及你定位的目的,例如:如下图所示:这样设置打包上传到app store上,当然这只是第一步,接下来还有第二步。2、你必须要在提交app store审核之前,在你的app描述这栏里面加上说明,说明你app里面有地位功能,以及地位功能的目的是什么。这
2016-10-31 10:24:59
3723
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人