
iOS
文章平均质量分 81
why_not_
13691365870@126.com
展开
-
性能优化学习
离屏渲染问题Instrument之Core Animation调优离屏渲染问题GPU 渲染机制:CPU 计算好显示内容提交到GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按 VSync 信号逐行进行读取帧缓冲区数据,经过可能的数模转换传递给显示器显示。GPU 渲染的两种方式:On-Screen Rendering 当前屏幕渲染,指的是GPU的渲...原创 2018-09-06 09:57:54 · 315 阅读 · 0 评论 -
iOS 隐藏状态栏
iOS 8 设置隐藏状态栏:1.只在当前控制器中设置状态栏: [[UIApplication sharedApplication] setStatusBarHidden:TRUE];2.设置全局的隐藏状态栏: 在info.plist上添加一项:Status bar is initially hidden,value为YES; 完后在MainAppDelegate.mm的-原创 2015-09-23 11:10:02 · 1165 阅读 · 0 评论 -
iOS中常用的毛玻璃处理
//1.模糊毛玻璃效果实现方案一 //利用系统的CoreImage(滤镜) 滤镜处理的过程比较慢,会造成加载图片缓慢的现象(等一会才看到图片),尽量放到子线程执行 UIImage *image = [UIImage imageNamed:@"1_1280x800"]; //1.创建CIImage CIImage *ciImage = [[CIImage alloc原创 2016-06-26 23:41:51 · 539 阅读 · 0 评论 -
SVN 和 Git的简单使用
CornerStone是Mac OS X系统下非常好用的一款svn工具,至XCode5之后,本人觉得XCode5的Svn实在让人不得要领,而CornerStone配置虽不难,但也有几个需要注意的地方,分享给大家,也希望大家能多提意见。已经安装了的小伙伴请直接看三步骤:一、下载地址CornerStoneV2.6:http://pan.baidu.com/s/1qWEsEbM ,密原创 2015-10-08 17:09:36 · 1549 阅读 · 0 评论 -
iOS 数据存储的几种方式
在iOS开发过程中常用的本地化存储有五种方式:1.plist (XML属性列表归档 NSArray\NSDictionary)2.preference (偏好设置\NSUserDefaults) (本质还是通过plist来存储数据,但是使用更加简单,无需关注文件、文件夹路径和名称)3.NSCoding (NSKeyedArchiver\NSKeyedUnarchiver) (能把任何原创 2015-12-22 13:52:27 · 7463 阅读 · 0 评论 -
推送
iOS 中的推送分为两种:本地推送通知(Local Notification)远程推送通知 (Remote Notification)推送的作用就是让不在前台运行的APP,告知用户APP内部发生了什么事情。推送通知的呈现效果有5种,可以在系统通知中心中进行设置。发出推送通知的时候,如果当前程序正在运行在前台,那么那么推送通知就不会被呈现出来,点击推送通知后,默认就会自动打开发出推送原创 2015-12-20 11:40:33 · 1131 阅读 · 0 评论 -
cocopods 一直报错找不到头文件的问题解决办法
这个问题让我头疼了好久,今天终于找到了解决的办法.有时候明明导入的有 第三方的库,点击头文件也可以连接过去,但是运行时候老是无法找到该文件解决办法:需要到setting -> User Header Search Path 里面,添加一个 $(SRCROOT),然后最右面的属性选择recursive就可以了。原创 2015-10-30 17:22:32 · 886 阅读 · 0 评论 -
地图定位
我们的应用中常常会用到地图和定位的相关功能,在开发中,想加入这两个功能,必须要基于2个框架进行开发。Map Kit : 用于地图展示Core Location : 用于地理定位一、Core Location 的基本使用:首先要导入框架 -> 导入主头文件:#import -> 创建CLLocationManager对象做用户定位。CLLocationManager的常用操作原创 2015-11-21 10:09:28 · 466 阅读 · 0 评论 -
tableView 去掉多余的行数 && iOS 中直接用WebView 加载pdf doc docx 等文件
//去掉底部多余的表格线[tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];//最后一行分隔线顶头显示static void setLastCellSeperatorToLeft(UITableViewCell* cell){ if ([cell respondsToSelector:@原创 2015-09-25 10:44:49 · 1452 阅读 · 0 评论 -
开发中的一些小细节
Xcode 7更新后在连接网络的时候需要简单的配置一下plist文件:NSAppTransportSecurity Dictionary NSAllowsArbitraryLoads Boolean一般在主控制器跳转到子控制的时候需要隐藏底部的tabBar,一般的的做饭如下:// 能拦截所有push进来的子控制器(需要自原创 2015-10-20 14:13:59 · 483 阅读 · 0 评论 -
随机数的问题
随机数的问题: arc4random() int a = arc4random()%3; 一般是取余求随机数 arc4random_uniform() int a = arc4random_uniform(23); 生成 23以下的随机数生成随机的颜色: - (UIColor *)colorRandom {原创 2015-09-22 15:20:36 · 409 阅读 · 0 评论 -
面试题搜集的比较好的链接
http://blog.sina.com.cn/s/blog_77e5f1990101cdiv.htmlhttp://www.90159.com/2015/07/26/71/http://www.jianshu.com/p/4fea8fa60d75http://www.360doc.com/content/14/0522/10/8772388_379844601.shtml#685原创 2015-09-29 14:33:19 · 346 阅读 · 0 评论 -
Runtime
typedef struct objc_class *Class; //类在Objective-C中就是结构体指针 struct objc_class { Class _Nonnull isa OBJC_ISA_AVAILABILITY; //isa 指向元类的objc_class结构体指针,iOS中的类也是对象,元类中储存有类对象的类方法 #if !__...原创 2016-09-01 23:31:22 · 291 阅读 · 0 评论 -
多线程线程同步方案
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I ...原创 2020-04-08 23:35:10 · 211 阅读 · 0 评论 -
iOS 开发尺寸
官方:https://developer.apple.com/ios/human-interface-guidelines/原创 2018-05-09 10:44:43 · 305 阅读 · 0 评论 -
iOS 逆向学习
class-dump : 主要作用是从可执行文件中导出APP头文件中的内容,根据这些头文件能够大致分析APP的结构和内容 安装: 下载地址:http://stevenygard.com/projects/class-dump/ 下载之后把dmg文件中的class-dump 文件复制到/usr/bin (command+shift+G /usr/local)...原创 2018-04-12 10:41:30 · 431 阅读 · 0 评论 -
BlocksKit的使用
众所周知Block已被广泛用于iOS编程。它们通常被用作可并发执行的逻辑单元的封装,或者作为事件触发的回调。Block比传统回调函数有2点优势: 允许在调用点上下文书写执行逻辑,不用分离函数 Block可以使用local variables.基于以上种种优点Cocoa Touch越发支持Block式编程,这点从UIView的各种动画效果可用Block实现就可见一斑。而BlocksK转载 2018-02-07 16:41:09 · 432 阅读 · 0 评论 -
ReactiveCocoa
ReactiveCocoa常见类:1、RACSiganl:信号类(RAC最核心的类),一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。 信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内部一个订阅者去发出。 默认一个信号都是冷信号,也就是值改变了,也不会触发,只有订阅了这个信...原创 2016-12-19 22:41:17 · 722 阅读 · 0 评论 -
高性能iOS应用开发笔记
最佳实践:避免使用大量的单例。具体来说,不要出现上帝对象(如职责特别多活状态信息特别多的对象)。这是一个反模式,指代一种常见的解决方案的设计模式,但是很快产生了不良效果。日志器、埋点服务和任务队列这样的辅助单例都是很不错的,但全局状态对象不可取。对子对象使用__strong对父对象使用__weak对使用引用图闭合的对象(如委托)使用__weak对数值属性(NSInteger、SEL原创 2018-01-31 15:22:31 · 420 阅读 · 0 评论 -
上传App Store 报错 ERROR ITMS-90087: "Unsupported Architectures 解决办法
报这个错一般是由于自己制作的framework 包含了x86_64, i386 架构,这个是苹果不允许的。解决办法:剔除掉x86_64, i386这两个架构两种办法:1、重新打包解决2、工程中添加shell脚本来解决脚本如下: APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops t原创 2017-04-17 19:04:49 · 11925 阅读 · 1 评论 -
iOS 笔记
///下面这个属性设置为NO的时候(不透明的导航栏),没有高斯模糊效果,此时会向下方移动64的距离 self.navigationController.navigationBar.translucent = YES; ///下面这个属性,当设置为不透明的导航栏的时候,需要把属性设置成为YES,充满全屏 self.extendedLayoutIncludesOpaqueBar原创 2016-12-09 19:04:09 · 334 阅读 · 0 评论 -
开发收藏
启动页添加广告:https://github.com/CoderZhuXH/XHLaunchAd推送:http://www.cnblogs.com/XYQ-208910/p/5506363.htmlHUD 进度 https://github.com/vjieshao/PTSProgressHUD环状进度条 http://www.jianshu.com/p/2810c0a508d2原创 2016-08-28 00:08:35 · 1349 阅读 · 0 评论 -
数据存储
plist数据存储: 1.获取沙盒路径 NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES)lastObject]; 2.拼接文件名 path = [path stringBy原创 2015-09-22 15:27:07 · 333 阅读 · 0 评论 -
搜集的一些好的框架和 技术大牛的博客
教程网站http://www.raywenderlich.com/objc.iohttps://www.objc.io/objc.io 中问http://objcio.cn/忘记什么时候收藏的了http://tutsplus.com/设计https://designcode.io/subjective-Chttp://subjc.com/NSHiph原创 2015-09-29 10:14:34 · 4111 阅读 · 0 评论 -
键盘的相关处理
一、KeyBoardTopBar类文件 1)KeyBoardTopBar.h头文件#import @interface KeyBoardTopBar : NSObject {UIToolbar *view; //工具条 NSArray *textFields;转载 2015-09-30 13:21:54 · 390 阅读 · 0 评论 -
版本检测更新 调用AppStore 显示自己的app
#pragma mark - 检查更新 - (void)checkUpdateWithAPPID:(NSString *)APPID { //获取当前应用版本号 NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [a原创 2015-09-29 14:24:32 · 398 阅读 · 0 评论 -
本地化多语言支持
1.在Supporting Files文件夹右键,NewFile… -> iOS -> Resources -> String Files,命名为Localizable.strings2.选中Localizable.strings 点击 XCode-> View-> Utilities -> File Inspector,在Localization中点+添加语言比如中文英文转载 2015-09-30 13:24:51 · 465 阅读 · 0 评论 -
给普通的view添加边框和背景 (关于layer的一些属性)
UIImageView *imgvPhoto = [UIImageView alloc] init];//添加边框 CALayer *layer = [_imgvPhoto layer]; layer.borderColor = [[UIColor whiteColor] CGColor]; layer.borderWidth = 5.0f;//添加四个边原创 2015-09-29 10:32:45 · 352 阅读 · 0 评论 -
截屏并保存
UIView *view = [[[[[UIApplication sharedApplication] windows] objectAtIndex:1] subviews] lastObject];//获得某个window的某个subView NSInteger index = 0;//用来给保存的png命名for (UIView *subView in [view subviews]转载 2015-09-30 13:13:12 · 360 阅读 · 0 评论 -
数组相关的处理方法
/*******************************************************************************************NSArray/*---------------------------创建数组------------------------------*///NSArray *array = [[NSArray all转载 2015-09-30 11:35:04 · 322 阅读 · 0 评论 -
判断输入的手机号和价格是否合法
/////手机号码的有效性判断//检测是否是手机号码-(BOOL)isMobileNumber:(NSString*)mobileNum{/***手机号码*移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188*联通:130,1原创 2015-09-29 14:35:21 · 517 阅读 · 0 评论 -
NSOperation && NSOperationQueue
if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){ NSArray *list=self.navigationController.navigationBar.subviews; for (id原创 2015-09-29 11:41:51 · 435 阅读 · 0 评论 -
iOS 中背景图片的设置
一般我们设置背景图片有两种方法://不释放内存,比较占内存,有缓存,加载常用的图片UIImage *image = [UIImage imageNamed:FileName];//会释放内存,没有缓存 比较适合加载大的图片UIImage *image = [UIImage imageWithContentsOfFile:path];原创 2015-09-25 10:38:25 · 584 阅读 · 0 评论 -
自定义cell的流程
自定义cell的流程:通过代码自定义cell的流程:1》新建一个继承自UItableViewCell的类2》重写initWithStyle:reuseIdentifier方法添加所需显示的子控件(不需要设置子控件的数据和frame)进行子控件一次性的属性设置(有些属性只需设置一次,比如字体、固定的图片等)3》提供2个模型属性数据模型:存放文字数据、图片信息fra原创 2015-06-07 21:05:59 · 401 阅读 · 0 评论 -
iOS 文件操作(NSFileManager)结合相册选取、保存、和读取
#import @interface ViewController : UIViewController @property (retain, nonatomic) IBOutlet UIImageView *imageView; @property (retain, nonatomic) UIButton *saveToFileButton; //打开相册原创 2015-09-30 10:55:22 · 1493 阅读 · 0 评论 -
Cocopods的基本介绍与使用:
1.什么是CocoaPods?2.如何下载和安装CocoaPods?3.如何使用CocoaPods? 1.CocoaPods是什么? 首先,当我们开发程序的时候,会经常使用第三方的开源类库。比如JSONKit、AFNetWorking等。可能某个类库的使用又使用到了另外的类库,我们就得麻烦去下载另外一个类库,这样会很麻烦。其次,很多的第三方库可能会有更新,那样我原创 2015-09-23 14:04:21 · 536 阅读 · 0 评论 -
Mac OS X 基本使用
1.Mac OS 版本区分: OS X 版本以大型猫科动物命名 10.0 猎豹(Cheetah) 10.1 美洲狮(Puma) 10.2 美洲虎(Jaguar) 10.3 黑豹(Panther) 10.4 老虎(Tiger) 10.5 豹子(Leopard) 10.6 雪豹(Snow Leopard) 10.7原创 2015-03-12 09:28:32 · 658 阅读 · 0 评论 -
OC中的description和sel
1、description方法: description方法包括类方法和对象方法。(属于NSObject类所包含) -description(对象方法): 使用NSLog和%@输出某一个对象的时候,就会调用对象的description方法,并且拿到返回值进行输出 +d原创 2015-03-13 16:51:17 · 530 阅读 · 0 评论 -
iOS 开发中关于弹窗的几种方式
常见的几种弹窗方式总结:1.IOS8以前的方式: UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"输入的数字不合理" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; [alertView show原创 2015-09-22 14:50:13 · 8208 阅读 · 0 评论 -
Masonry简单使用
Masonry源码在其官网上也进行了很多的介绍,在下面会写出我自己的一些见解.如果使用过iOS中系统的NSLayoutConstraints已经知道非常麻烦如下代码就是系统的约束UIView *superview = self;UIView *view1 = [[UIView alloc] init];view1.translatesAutoresizingMaskIntoCon转载 2015-10-10 09:25:22 · 296 阅读 · 0 评论