iOS
Immanito
这个作者很懒,什么都没留下…
展开
-
CocoaPods安装
安装rubyruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"升级rubysudo gem update --system移除源gem sources --remove https://rubygems.org/更换源gem source -a https://gems.ruby-china.org/查看更...原创 2017-09-18 10:55:20 · 406 阅读 · 0 评论 -
iOS与unity3D简单交互
一.小记最近公司有个需求,需要用unity3D建立3D模型,并且实现切换功能,由于做开发时间不算长,又没有接触过unity3D, 所以只能一头雾水去网上查找资料,也看了雨松MOMO的文章,不过都是几年前的了,有些东西已经不适用了,只能边看边研究,今天终于有点眉目了,可以在unity3D导出的iOS工程文件的基础上,对3D建模的页面进行修改,并能够执行一些操作了。二.实现细节原创 2016-07-30 23:29:49 · 5412 阅读 · 10 评论 -
iOS学习路线图
转载 2017-02-17 10:26:05 · 350 阅读 · 0 评论 -
XIB中设置UIView圆角
首先熟悉两个属性IBInspectable和IBDesignableIBInspectable修饰的属性可以在Interface Builder中查看并修改IBDesignable可以让视图直接在画布上渲染,实时修改实时更新// UIView+CornerRadius.h#import IB_DESIGNABLE@interface UIView (CornerRa原创 2016-12-05 16:01:10 · 655 阅读 · 0 评论 -
iOS原生二维码扫描(一)
@interface ScanCodeViewController (){ AVCaptureSession * session;//输入输出的中间桥梁}@end@implementation ScanCodeViewController- (void)viewDidLoad { [super viewDidLoad]; [self configUI];原创 2016-11-26 14:18:59 · 765 阅读 · 0 评论 -
iOS原生二维码扫描(二)
由于原生的二维码扫描,响应速度特别快,全屏扫描区域的话会出现二维码图像在屏幕边界的时候就会识别,影响使用体验,所以要更改一下识别区域的大小输出流AVCaptureMetadata有这么一个属性rectOfInterest 就是它的识别区域大小属性,这是它的描述:/*! @property rectOfInterest @abstract Specifies a rec原创 2016-11-30 13:50:07 · 543 阅读 · 2 评论 -
十六进制转换RGB显示颜
原创 2016-06-24 16:54:50 · 473 阅读 · 0 评论 -
iOS异步加载网络图片
当我们从一个界面跳到下一个界面,而下一个界面需要从网络加载图片的时候大体的思路是:NSURL * url = [NSURL URLWithString:urlStr];NSData * data = [NSData dataWithContentsOfURL:url];UIImage * image = [UIImage imageWithData:data];[self.photo原创 2016-11-16 11:44:33 · 2498 阅读 · 0 评论 -
iOS获取storyBoard中的viewController
当想获取到xib中的viewController时非常简单,有个初始化方法直接 initWithNibName: 可以直接用nib的名字获取到对应的viewController 但是到storyBoard的时候需要多一个步骤 UIStoryboard * sb = [UIStoryboard storyboardWithNam原创 2016-10-20 16:32:50 · 3224 阅读 · 0 评论 -
APP配置多环境分发(一)
之前为公司做过一个关于内部业务流程的系统,最近多了些加盟商,加盟商内部同样需要这套系统进行运转,虽然APP的整体架构没有任何改变,还是那套系统,但是一些细节改变了,包括但不限于APP名称,APPIcon, URL, 界面上的一些文字,图片等等,开始也没有想太多,copy了3份代码独立管理(请无视懒癌晚期),每次有bug,不用说,不停的画轮子,浪费时间,没有任何意义,最近企业账号又下来了,3个APP原创 2017-03-07 23:49:39 · 1013 阅读 · 0 评论 -
APP配置多环境分发(二)
上一篇文章定义好了不同scheme下不同的bundle ID和display name 就可以通过选择不同scheme来生成两个内容相同的独立APP,但是APP中的内容更改还需要处理一下。我们如何在APP代码中判断当前是哪个scheme,又如何判断当前scheme下是debug还是release?这是就需要用到预处理宏定义,在build setting中的Apple LLVM8.0- Pr原创 2017-03-15 11:33:12 · 514 阅读 · 0 评论 -
iOS JSON序列化与反序列化
序列化与反序列化操作同属于类NSJSONSerialization序列化:将Json对象转化为Json字符串NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonObj options:NSJSONWritingPrettyPrinted error:&error];NSString *jsonStr = [[原创 2017-03-27 14:35:10 · 3407 阅读 · 0 评论 -
不在被虐中成长就在被虐中死亡
今天又被虐了,哎,平时太不注意细节了算是提了个醒吧,记录下来不要再被绊倒第二次1.视图完整生命周期,First VC是从xib文件创建的,所以走了initWithCoder2.判断一个数组是否是有序的3.多个timer在cell上4.Model有很多属性,使用runtime能少些代码,但是遍历属性数组时很蛋疼,有没有更好的办法原创 2017-11-09 00:09:36 · 467 阅读 · 0 评论 -
UITableView的代理方法viewForHeaderInSection不执行的原因
有时候我们想自定义UITableView的headerView,于是重写代理方法:- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section但是在运行程序的时候发现该方法不执行,这时我们还需要重写一个代理方法:- (CGFloat原创 2016-07-15 17:48:28 · 7059 阅读 · 1 评论 -
iOS静态库和动态库的区别
一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?转载 2017-11-08 00:18:44 · 619 阅读 · 0 评论 -
Cocoapods快速解除依赖库
移除cocopods后重新安装1、打开终端,运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库2、安装成功后,cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖3、运行pod install,重新安装cocopods转载 2017-04-27 17:35:28 · 1061 阅读 · 0 评论 -
iOS URLstring中带有中文
最近抓了一个APP的接口,使用它的数据(原谅我不厚道),在请求的时候用AFNetworking时,将带有汉字的参数直接装入字典请求,没什么问题,也就没有在意,但是当自己用string转NSURL去请求HTML页面的时候,怎么也加载不出来,带汉字的URL直接copy到浏览器也可以打开,一时懵逼,思来想去,Charles中抓到的接口里显示的不是汉字,时带有%的编码,只有这个地方可能出问题了,于是又ge原创 2017-09-19 21:55:11 · 1992 阅读 · 0 评论 -
iOS系统的各种设备识别码
1.UDID 全称Unique Device Identifier,顾名思义,苹果iOS设备的唯一识别码,由40个字符的字母和数字组成,为了保护隐私苹果已经禁止读取这个标识了。2.UUID 全称Universally Unique Identifier,基于iOS上某个单个的应用程序,只要用户没有完全删除应用程序,则这个UUID在用户使用期间一直保持不变,如果用户删除了这个应用程序,然后再重新转载 2017-08-14 20:08:41 · 3162 阅读 · 0 评论 -
iOS跳转设置界面的多个url
NSString * urlString = @"App-Prefs:root=WIFI"; if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) { if ([[UIDevice currentDevice].systemVersion doubleValue] >= 1转载 2017-06-02 14:37:30 · 908 阅读 · 0 评论 -
关于循环动画
最近测试总反应一个问题就是APP使用过二维码扫描之后,手机总是会出现发烫,耗电量增加的问题,插上手机,打开Xcode开始debug.前前后后折腾了一会,发现,打开二维码扫描界面的时候一切正常,但是当push到其他界面之后,CPU的使用率飙到100+%,耗电量也变成了very heigh,绝对是一个重大缺陷于是开始排查问题,一开始想到的是AVCaptureSession的对象没有释放原创 2017-04-28 11:35:27 · 492 阅读 · 0 评论 -
iOS解决duplicate symbol报错
这种错误的存在一般是有两种情况:1.检查文件列表,查看是否有重复导入的文件夹或者类。2.工程引入头文件时,将.h错写成.m。欢迎补充!原创 2016-10-20 10:55:52 · 519 阅读 · 0 评论 -
iOS判断是否插入耳机
//获取设备状态,是否插入耳机,如果插入耳机,则返回“YES"+ (BOOL)isHeadphone{ UInt32 propertySize = sizeof(CFStringRef); CFStringRef state = nil; AudioSessionGetProperty(kAudioSessionProperty_AudioRoute,&propertySi原创 2016-08-05 16:22:49 · 1264 阅读 · 0 评论 -
关于tableView和cell的小知识点总结
1.注册cell//自定义cell使用xib时,注册cell- (void)registerNib:(nullable UINib *)nib forCellReuseIdentifier:(NSString *)identifier//重用时调用cell的方法- (void)awakeFromNib;//自定义cell未使用xib时,注册cell- (void)reg原创 2016-10-26 11:43:38 · 497 阅读 · 0 评论 -
UIScrollView属性
UIScrollView的属性总结属性作用CGPoint contentOffSet监控目前滚动的位置CGSize contentSize滚动范围的大小UIEdgeInsets contentInset视图在scrollView中的位置iddelegate设置协议BOOL dir原创 2016-05-26 15:50:22 · 288 阅读 · 0 评论 -
Xcode全局修改变量、方法名
在做iOS开发代码优化的工作时,优化代码结构之前,我们应该先整理好工程的外貌,将文件和类的命名进行规范,在Xcode中为我们提供了方便而强大的名称修改功能。第一步:修改类名 将鼠标点击放在类的名称上,选择Xcode工具栏中的edit->refactor->rename:之后,将类名更改为我们需要的模式点击preview,记得将下面的关联文件勾选:Xcode会为原创 2016-05-26 15:50:28 · 2980 阅读 · 0 评论 -
关于UI界面上的坐标
CGRect是一个结构体,包含CGPoint origin 和 CGSize sizeorigin 表示的是frame的前两个参数 x,y,表示的是起始点的坐标size表示的是自身的尺寸,长和宽原创 2016-05-26 15:50:34 · 375 阅读 · 0 评论 -
iOS读取图片数据的两种方法:UIImageJPEG和UIImagePNG
UIImageJPEGRepresentation函数有两个参数:引用的图片和压缩系数.UIImagePNGRepresentation(UIImage * image)函数只有一个引用图片参数.UIImagePNGRepresentation(UIImage * image)要比UIImageJPEGPresentation(UIImage * image, 1.0)返回的图片数据量大很原创 2016-05-26 15:50:46 · 1226 阅读 · 0 评论 -
Label的使用
NSLineBreakByWordWrapping = 0, // Wrap at word boundaries, default 以空格为边界保留单词 NSLineBreakByCharWrapping, // Wrap at character boundaries 保留整个字符 NSLineBreakByClipping, // Simpl原创 2016-05-26 15:51:03 · 397 阅读 · 0 评论 -
通过添加全局断点来找出崩溃语句!
在Xcode窗口左上角,有一个向右指的灰色箭头点击,使之变成蓝色然后点Xcode左下角加号选择Add Exception Breakpoint 添加全局断点显示断点添加成功开始运行程序 成功找出断点!!!!!原创 2016-05-26 15:51:21 · 514 阅读 · 0 评论 -
UIView中的坐标转换
IOS-- UIView中的坐标转换// 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;// 将像素point从view中转换到当前视图中,返回在当前视图中的像素值- (CGPoint)转载 2016-06-29 14:16:56 · 292 阅读 · 0 评论 -
利用键盘弹出通知,做页面跟随动画
在viewDidLoad中调用方法注册键盘弹出动画的实现在dealloc中移除通知这样做的目的就是保证通知只注册一次,并且不会在特定情况下过早移除。原创 2016-06-29 13:30:07 · 689 阅读 · 0 评论 -
iOS8.0前后关于alertView和actionSheet
8.0之前两个控件分别创建8.0之后两个控件统一由UIAlertController管理例:UIAlertController * alert =[UIAlertController alertControllerWithTitle:@"提示消息" message:@"账号密码有误" preferredStyle:UIAlertControllerStyleAlert];其中p原创 2016-05-26 15:50:16 · 253 阅读 · 0 评论 -
UIView层次管理
将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。用第二层子视图 换 第一层子视图的位置 self.view是第0层[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:2];原创 2016-05-26 15:50:10 · 229 阅读 · 0 评论 -
iOS页面间跳转的方式
方式一:Storyboard的segues方式鼠标点击按钮button然后按住control键拖拽到SVC页面,在弹出的segue页面中选择跳转模式即可优点:操作方便,无代码生成,在storyboard中展示逻辑清晰缺点:页面较多时不方便查看,团队合作时可维护性差, 多人合作时不建议使用这种方式。方式二:选项卡UITabBarController控制器通过调用UITabBarC原创 2016-05-26 15:50:06 · 444 阅读 · 0 评论 -
error: couldn't parse contents of 'Info.plist'
error: couldn't parse contents of '/Users/jiaoyanqi/Desktop/运管平台-iOS/内部app/HuiBaoyg/Info.plist': The data couldn’t be read because it isn’t in the correct format.commadn + R 运行程序,发现编译器说plist文件的格式不正原创 2016-10-28 10:57:49 · 2227 阅读 · 0 评论 -
关闭iOS键盘联想功能
self.textField.autocorrectionType = UITextAutocorrectionTypeNo;self.textView.autocorrectionType = UITextAutocorrectionTypeNo;原创 2016-06-29 13:52:53 · 7843 阅读 · 2 评论 -
关于Masonry错误
大意就是说没有发现父视图这个意思吧更改为先添加到父视图,就不崩溃了。。。。。原创 2016-05-26 15:51:15 · 634 阅读 · 0 评论 -
解决No codesigning identities found:
"No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“20160905YG02”) were found."对于原创 2016-09-05 16:32:53 · 4536 阅读 · 0 评论 -
iOS调用WebService(SOAP接口)
首先有几点说在前面一般,在请求URL的后面带有WSDL字样的需要调用WebServiceURL样式例子:http://ip:port/navigable/webservice/loginSerice?wsdl或者.wsdlwsdl (Web Services Description Language)网络服务描述语言调用WebService默认使用POST请求soap字符串使用常见的AFN原创 2016-08-05 15:39:30 · 7747 阅读 · 8 评论 -
button执行frame动画响应点击事件
如果按照常规方法去写这个过程,代码如下:@interface ViewController ()@property (nonatomic, strong) UIButton * button;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.button = [[UIButt原创 2016-08-05 12:56:38 · 1265 阅读 · 0 评论