
【iOS学习】
且心
编程之里,编程之外O_O
展开
-
iOS的WKWebView白屏处理,终极方案
终极解决思路只有H5自己说加载完成了才是真的完成了,H5加载完成后通过JS向OC发送个消息,即可。JS与OC交互请自行找一下,不做细述。其余思路1. 有没有标题。个别时候好用。2. 有没有WKCompositingView。有时候好用。3. body里面有没有内容。有时候好用,弱网的时候可能不好用,弱网的时候可能出现body有内容,但还是空白。4. 其它类似方案。以上方法在...原创 2019-06-11 15:01:52 · 7268 阅读 · 0 评论 -
UILabel上展示不同颜色的文字(NSAttributedString)
首先导入CoreText.framework,并在需要使用的文件中导入:#import新建一个类,继承UILabel,以下为文件内容:MyLabel.h//MyLabel.h#import #import @interface MyLabel : UILabel@endMyLabel.m//MyLabel.m#import "MyLabel.h"@原创 2014-03-31 21:19:15 · 10776 阅读 · 3 评论 -
iOS 9.0更新内容
iOS 9.0本更新推出了强大的搜索功能和更完善的 Siri 功能,iPhone、iPad 和 iPod touch 因而更加智能、主动。新增的 iPad 多任务功能让两个应用能并行排列或通过全新的画中画功能同步运行。此外,各种内建应用也更为强大,例如“地图”提供了详细的公交信息,“备忘录”应用已经重新设计,而且推出了全新的 News 应用。操作系统基础得以改善,提高了性能,增强了安全性并原创 2015-09-18 15:39:33 · 1102 阅读 · 0 评论 -
iOS开发,更改状态栏(StatusBar)文字颜色为白色
具体实现步骤1.如图在Info.plist中进行设置,主要用于处理启动画面中状态栏(StatusBar)文字颜色。2. 在AppDelegate中的 didFinishLaunchingWithOptions 方法中添加代码 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent原创 2015-07-29 14:13:49 · 4343 阅读 · 2 评论 -
NSRegularExpression的使用,获取所有符合条件的结果
开发中用到检索字符串,并获取获取符合条件的字符串数组。网上找了下,可以利用正则表达式完成,结果是个数组,数组元素是NSTextCheckingResult。效果不错,小记一下。 直接看示例代码NSString *str = @"ddididd{{{didd}}diid";NSString *regexStr = @"d[i]+d";NSRegularExpression *原创 2015-08-24 18:59:00 · 2310 阅读 · 0 评论 -
【总结】iOS开发申请真机测试设备的一些理由
为什么要申请真机测试?申请真机测试设备的一些原因,或者是iOS开发必须使用真机的一些理由,随便总结了下,大家可以参考参考。 0.作为一个苹果开发者的尊严。自己学习而且资金紧张就算了,如果在公司工作,连个测试设备都没有,我大程序员的颜面何在?(玩笑了O(∩_∩)O~)1.拍照、视频录制等开发,只能在真机上运行;2.短信、电话等功能调用,只能在真机上运行;3.静态库兼容。如果静态库原创 2015-05-07 14:25:08 · 3098 阅读 · 0 评论 -
NSPathUtilities,关于文件路径的几个常用操作
NSPathUtilities,关于文件路径的几个常用操作,熟悉一下,拼接路径什么的,感觉还是挺好使的。//原路径。随便在项目中添加了张图片,用于测试NSString *strPath =[[NSBundle mainBundle] pathForResource:@"002" ofType:@"png"];NSLog(@"path======%@", strPath);//获取路径的原创 2015-05-06 18:27:00 · 950 阅读 · 0 评论 -
利用UILabel、UITextView加载html文本
挺简单,直接上代码了NSString *strHtml = @"提示1、测试测试测试测试测试测试测试测试测试测试测试测试2、测试测试测试测试测试测试测试测试测试测试";NSAttributedString * strAtt = [[NSAttributedString alloc] initWithData:[strHtml dataUsingEncoding:NSUnicodeString原创 2015-04-27 11:10:49 · 7034 阅读 · 0 评论 -
UIWebView顶部20点的空白条,和状态栏似的,终于去掉了
做个电子书的应用,用了UIWebView,顶部一直有20点的背景色的空条,然后各种排查,什么subview,什么frame,什么contentSize等等,还是没能解决,而且都没头绪了。后来经一高手指导,只加了一句便得以解决。早知如此,应该多问,应该将思维发散到更多可能。前车之鉴,不能再覆。解决方法://controller中添加self.automaticallyAdjustsScro原创 2015-04-21 15:55:43 · 9948 阅读 · 0 评论 -
mac上SVN项目管理,提示被锁定的解决方法
问题SVN项目管理,提示被锁定,不能commit,也不能update,提示 clean the working copy and then。。。解决方法原创 2015-03-12 15:26:07 · 2499 阅读 · 0 评论 -
CMPedometer(计步器)使用,获取用户行走步数、距离等信息
用途CMPedometer,统计某段时间内用户步数,距离信息。代码实现引入框架CoreMotion.framework#import @property (strong, nonatomic) CMPedometer *pedonmeter;_pedonmeter = [[CMPedometer alloc] init]; if ([CMPedomete原创 2015-11-16 14:55:10 · 9214 阅读 · 8 评论 -
iOS,利用URL Schemes跳转到设置wifi、蜂窝移动网络页面
一. 跳转到“设置”//>=iOS8.0可用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];二. 跳转到设置的其它位置1. 首先针对Info.plist添加如下选项2. 调用跳转代码,如下//跳转到“About”(原创 2016-01-05 15:55:12 · 11301 阅读 · 2 评论 -
iOS开发,获取WIFI配置信息,WIFI名称、网关(路由器地址)、本机IP地址、DNS等
DEMO地址(看代码,什么就都有了):https://github.com/SimpleBraver/test_wifi.git1、获取当前手机WIFI名称信息#import <SystemConfiguration/CaptiveNetwork.h>//iOS获取当前手机WIFI名称信息-(NSString *)fetchSSIDInfo{ NSString *curre...原创 2018-03-15 17:27:42 · 9089 阅读 · 0 评论 -
Xcode打包,仅archive时通过Run Script脚本进行build号自增
Run Script脚本不知Xcode如何添加shell脚本?请看文章结尾^_^网上一般都是release模式下build号自增,这里是根据archive进行的(每次打包build号++),大同小异,看实际需要吧,直接上代码了if [ $ACTION == install ]; thenecho "Bumping build number..."echo $ACTIONplis...原创 2019-06-04 18:01:37 · 3354 阅读 · 0 评论 -
iOS开发,使用STSimplePing检测弱网状态
应用场景获取当前网络状态下特定地址的网络延迟,也就是ping值,从而监测网络状态及判断弱网。Demo地址https://download.csdn.net/download/u011439689/11223700Demo运行效果Demo运行效果...原创 2019-06-03 16:09:49 · 2648 阅读 · 0 评论 -
编写高质量iOS与OS X代码的52个有效方法
写在前面最近读了《编写高质量iOS与OS X代码的52个有效方法》,把摘要整理下,以便后面查看。一、熟悉Objective-C 1. 了解Objective-C语言的起源 • Objective-C为C语言添加了面向对象特性,是其超集。Objective-C使用动态绑定的消息结构,也就是说,在运行时才会检查对象类型。接收一条消息之后,究竟应执行何种代码,...原创 2019-05-28 17:30:03 · 323 阅读 · 0 评论 -
【日常学习】Mac终端自动补全及常用命令
终端自动补全的配置1. 打开终端,输入 :nano .inputrc注:nano是一个字符终端的文本编辑器2. 在文件里面写上:set completion-ignore-case onset show-all-if-ambiguous onTAB: menu-complete3. ctrl + o4. 输入任意文件名,回车5. 输入y,回车6. 重启...原创 2019-04-10 15:39:05 · 2438 阅读 · 1 评论 -
iOS面试题及答案
1、设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编写。2). MVVM模式:Model View ViewModel 把模型 视图 业务逻辑 层进行解耦和编写。3). 单例模式:通过static关键词,声明全局变量。在整个...原创 2019-03-27 15:54:53 · 268 阅读 · 0 评论 -
iOS文件压缩与解压缩,ZipArchive使用
1. 导入三方包包地址:https://github.com/ZipArchive/ZipArchive或者通过pod加载pod 'SSZipArchive’2. 使用路径宏定义,方便使用#define doc_path(_fileOrFolder_) [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSU...原创 2019-03-21 10:52:21 · 4292 阅读 · 0 评论 -
iOS开发,快速查看iPhone手机UDID,不需要Xcode,不需要iTools
查看UDID方法https://www.pgyer.com/udid/不需要Xcode,不需要iTools,需按要求安装证书,并在Safari中打开即可。完。原创 2018-08-06 17:41:24 · 2027 阅读 · 0 评论 -
iOS项目中使用第三方字体
需要将一个漂亮的字体文件用到自己的项目中,怎么办?一、将字体文件(.TTF)加入到项目中,自己顶一个目录就好二、修改info.plist三、检查是否可用如果在代码中用UIFont等添加字体,字体名称要用图中2所显示的名字。【很重要、很重要、很重要】...原创 2018-07-13 15:26:32 · 2574 阅读 · 0 评论 -
iOS开发之域名(Domain Name)转IP
话不多说,code如下:#import <arpa/inet.h>- (void)viewDidLoad { [super viewDidLoad]; NSString * ipTemp = [self domainNameToIP:@"www.baidu.com"]; NSLog(@"域名转IP:%@", ipTemp);}// iOS开发之域名(...原创 2018-03-16 16:18:31 · 1537 阅读 · 0 评论 -
iOS开发,系统自带表情的获取
//将数字转为#define EMOJI_CODE_TO_SYMBOL(x) ((((0x808080F0 | (x & 0x3F000) >> 4) | (x & 0xFC0) - (void)viewDidLoad { [super viewDidLoad]; //单独调用 int sym = EMOJI_CODE_TO_SYMBOL(0x1F600);原创 2015-03-03 18:26:38 · 6897 阅读 · 0 评论 -
iOS本地推送的实现,兼容iOS8
AppDelegate.m中的代码// AppDelegate.m中- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 处理iOS8本地推送不能收到的问题 float sysVersion=[[UIDe原创 2015-02-26 17:17:06 · 1488 阅读 · 0 评论 -
改变UIButton上标题位置、文字颜色、背景色等
示例代码+注释 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 100, 200, 100)]; //添加点击事件 [button addTarget:self action:@selector(pushToSecond) forControlEvents:UIControlEve原创 2014-04-01 08:54:02 · 11066 阅读 · 0 评论 -
iOS7的Cell的分割线宽度不满屏,解决方法
在iOS7中,UITableView的分割线不能到达左侧边界,在之前的版本中是可以,不用处理,所以需要特别的照顾一下了。iOS7的Cell的分割线宽度不满屏,解决方法if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { [self.tbView setSeparatorInset:(UIEdge原创 2014-02-19 15:51:05 · 3592 阅读 · 0 评论 -
ios中KeyChain用途(整理)
一、在应用间利用KeyChain共享数据 我们可以把KeyChain理解为一个Dictionary,所有数据都以key-value的形式存储,可以对这个Dictionary进行add、update、get、delete这四个操作。对于每一个应用来说,KeyChain都有两个访问区,私有区和公共区。私有区是一个sandbox,本程序存储的任何数据都对其他程序不可见。而要想在将存储的内原创 2014-01-23 15:58:28 · 5722 阅读 · 1 评论 -
使用NSURLCache为NSURLRequest设置缓存
使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。内存缓存我们可以使用sdk中的NSURLCache类。NSURLRequest需要一个缓存参数来说明它请求的url何如缓存数据的,我们先看下它的CachePolicy类型。1、NSURLRequestUseProtocolCachePo原创 2014-01-24 15:27:39 · 3486 阅读 · 0 评论 -
利用openURL,在IOS应用中打开另外一个应用
在IOS中,实现一个应用启动另外一个应用,使用UIApplication的openURL:方法就可实现,这里以test跳到test02为例。(需要先创建这两个工程)注册自定义URL协议(在test中)首先被启动的应用需要向iPhone注册一个自定义URL协议。这是在info.plist文件进行的。1. 右键,选择“Add Row”2. Key值选择“URL types”3. 打原创 2014-01-22 16:21:17 · 2359 阅读 · 0 评论 -
iOS7控件变化及页面效果变化总结
1. icon 更新到iphone:120X120. ipad:152x1522. 开机画面要添加回status bar3. view controller 用full-screen layout4. 重新设计bar button 图标5. 按钮要使用无边化6. 使用相对布局,auto layout原创 2013-10-09 11:11:24 · 1795 阅读 · 0 评论 -
iOS开发之keychain的使用
什么是keychain?以及keychain的作用。The keychain is about the only place that an iPhone application can safely store data that will be preserved across a re-installation of the application. Each iPhone appl原创 2013-11-25 14:02:30 · 1267 阅读 · 0 评论 -
iOS单例模式的实现
单例模式。A singleton class returns the same instance no matter how many times an application requests it。在objective-c中要实现一个单例类,一般需要如下步骤:1、为单例对象实现一个静态实例,并初始化,然后设置成nil,2、实现一个实例构造方法检查上面声明的静态实例是否为nil,原创 2013-07-18 14:52:11 · 1106 阅读 · 0 评论 -
利用GCD使程序在后台较长久的运行
在没有使用GCD时,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作。但是在使用GCD后,app最多有10分钟的时间在后台长久运行。这个时间可以用来做清理本地缓存,发送统计数据等工作。让程序在后台长久运行的示例代码如下:// AppDelegate.h文件@property (assign, nonatomic) UIBackgroundTaskId原创 2013-10-09 10:58:08 · 1243 阅读 · 0 评论 -
利用UIImageJPEGRepresentation与UIGraphicsBeginImageContext进行图片压缩的简单比较
UIImage *image01 = [UIImage imageNamed:@"002.png"];//原图 NSData *dataOf02 =UIImageJPEGRepresentation(image01, 0.5);//压缩图片内容,不影响图片的size,得到一个原大小,但更模糊的图片。 UIImage *image02 = [UIImage imageWit原创 2014-05-20 14:30:34 · 2565 阅读 · 0 评论 -
iOS通过app读取通讯录信息(整理)
iOS通过app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和AddressBook两个包,并且引入头文件#import #import 具体实现如下:-(void)readAllPeoples{ //定义通讯录名字为addressbook ABAddressBookRef tmpAddressBook = nil;原创 2014-05-21 15:34:07 · 3859 阅读 · 0 评论 -
利用网卡地址和OpenUDID,实现获取设备唯一标识的一种方案
网卡地址(通过Unix级别的API去获取Wifi的网卡地址。该方法属于UDID替代方案中最为准确的一种,因为网卡地址不会因为刷机、还原设备而发生改变。故追求唯一性的厂商多选择此种方案!在iOS7之后,应用已经无法获取网卡地址,该方案在iOS7中也已经被废弃,所以可用于iOS7以前的系统。OpenUDID(>=iOS7的系统)开源的一个UDID替代方案,原理是利用应用间的剪贴板共原创 2014-05-23 13:53:14 · 2054 阅读 · 0 评论 -
UILabel的高度(height)自适应文字内容(text)
方法一首先计算出字符串在已知宽度的View中的size,然后改变View的size就可以。示例代码如下:#define IOS7_OR_LATER ( [[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending )CGSize size;NSString *strTail =原创 2015-01-12 15:11:28 · 3387 阅读 · 0 评论 -
利用UITableView实现左右两栏滚动的关联【附Demo】
实现功能左栏为大项列表,右栏为没项目的子列表。实现了选择左栏,右栏滚动到对应列表;滚动右栏,左栏大项的选中状态对应改变。代码见demo,这里简单介绍几个主要的方法。主要方法及简析//section的header的标题,随着UITableView的滚动,总会有一个驻留在UITableView的顶端。- (NSString *)tableView:(UITableView *)原创 2015-01-09 14:44:29 · 1659 阅读 · 0 评论 -
NSPredicate的在查询中的简单使用
上代码吧,每块代码都可以直接跑,并附有注释和运行结果//直接使用 == 严格匹配NSArray *arrOriginal = [NSArray arrayWithObjects:@"c1",@"c", @"cd", @"cdd", @"cd", nil];NSString *match = @"cd";NSPredicate *predicate = [NSPredicate predi原创 2014-11-22 18:19:36 · 1916 阅读 · 0 评论 -
【iOS】利用block实现回调的示例
利用block完成回调,小demo一个。闲话少说,直接看代码吧!O(∩_∩)O哈哈~TestObject.h#import typedef void (^FinishBlock)(NSString *backStr);@interface TestObject : NSObject//能进行回调的方法- (void)playSomeTime:(FinishBloc原创 2014-08-11 19:02:36 · 1669 阅读 · 0 评论