自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS多线程

线程间通讯:PerformSelector (选择器模式)NSMachPort/CFMatchPortGCD的方式多线程: 方案 简介 语言 线程生命周期管理 使用频率 ptheard 一套通用的多线程api,适用于Unix/Lin...

2019-11-18 17:15:00 188

原创 解决 rac_signalForControlEvents 调用多次问题

最近开发项目中遇到一个很奇怪的问题,在一个列表里面展示内容是对的,但是点击事件上绑定的model数据会发生变化,然后各种加断点,发现是cell上按钮绑定的rac_signalForControlEvents方法会调用多次导致的,原因在于cell复用;说到UITableView,再说一下UITableViewCell,RAC给UITableViewCell提供了一个方法:rac_prepareFor...

2018-11-26 09:38:28 1730

原创 手机格式334 自动分割

最近遇到一个产品需求,手机号码输入后,自动按照334的格式用空格分割开来,现在粘出一些相应的实现代码,仅供大家参考!.h文件(继承与UITextfield自定义一个textField)#import #define partitionStr @" "@interface CQPhoneNumTF : UITextField/** 去掉格式的电话号码 */@property

2018-01-08 09:44:37 1449

原创 post请求传xml参数(KissXML 生成xml文件)

最近开发中遇到一个需求,在post请求中,需要传递xml的参数!瞬间感觉不太好了,常规来说都是上传json的, 无奈也只能按照接口文档来做了!查阅大量资料,KissXML 这个开源框架可以完美解决该问题, 下面粘出实现代码:- (void)getSkuXmlWithVArray:(NSMutableArray *)vArray pArray:(NSMutableArray *)pArray{

2017-10-17 16:47:00 732

原创 post请求传xml参数(KissXML 生成xml文件)

最近开发中遇到一个需求,在post请求中,需要传递xml的参数!瞬间感觉不太好了,常规来说都是上传json的, 无奈也只能按照接口文档来做了!查阅大量资料,KissXML 这个开源框架可以完美解决该问题, 下面粘出实现代码:- (void)getSkuXmlWithVArray:(NSMutableArray *)vArray pArray:(NSMutableArray *)pArray{

2017-10-17 16:36:19 3427

原创 initWithCoder与initWithFrame的区别

对于标题中两个方法, 不知道大家是否跟我一样之前不是很清楚, 今天根据我查阅的资料,写一下我的简单理解!initWithCoder: 针对于.xib的控件来说的,当你嵌入一个视图对象到xib,视图加载时默认调用该方法;例如:假如创建的view来自xib,那么将会调用initWithCoder,由系统自动来调用,自己不能调用。initWithFrame: 针对于纯代码布局, 视图加载时默认调用的是该方

2017-09-15 15:57:29 298

原创 实现UITextView的placeholder及限制输入次数(干货)

众所周知, UITextfield有一个属性可以设置其placeholder, 但是UITextView却没有, 所以往往遇到要设置它的占位字符时,都要百度一番~~ ,今天又遇到这个问题, 所以自己写了一个Catgorty来实现这个需求, 分享出来希望能帮助一些伙伴! 好了, 话不多说, 上菜上菜.h文件@property (nonatomic,strong) NSString *placehol

2017-09-15 15:17:55 906

原创 设置UIButton图片和文字的位置(下上文图, 上图下文, 左图右文, 左文右图)

各位码友, 想必大家在项目中都会遇到这种场景, UI设计师设计一个按钮,非要同时有图片及文字,而且位置不一, 看到这里就有些头疼,今天来分享一个封装的api方法, 直接调用皆可简单实现其功能:首先定义几个位置类型:#pragma mark - button文字所在位置typedef NS_ENUM(NSInteger, RSButtonType) { RSButtonTypeRight =

2017-09-15 15:01:04 3179 1

原创 按钮倒计时的实现 iOS

很多项目中,都会涉及到倒计时的功能, 发送完验证码开始倒计时,针对这个我个人封装了一个简单的方法来实现此功能, 话不多说,上干货!首先我是在UIButton的一个延展类里面添加了一个方法, /** * 倒计时按钮 * * @param timeLine 倒计时总时间 */- (void)startCountDownWithTime:(NSInteger)timeLine然后在.m中实现 -

2017-09-12 10:27:49 387

原创 YYWebImage使用

YYWebImage 是一个异步图片加载框架 (YYKit 组件之一), 性能相对较高,下面来简单说一下。 **特性**:异步的图片加载,支持 HTTP 和本地文件。支持 GIF、APNG、WebP 动画(动态缓存,低内存占用)。支持逐行扫描、隔行扫描、渐进式图像加载。UIImageView、UIButton、MKAnnotationView、CALayer 的常见图片处理:模糊、圆角、

2017-09-01 17:19:40 6323

原创 Bounds 和 Frame 的区别

闲来无事, 想到之前面试时有问到bounds和frame的区别的问题,索性就写了一个简单的控件,验证一下,大家请看下图: 从打印的坐标可以看出, frame和bounds的区别就是在于x坐标及y坐标,对于一个控件来说,frame的原点是任意的(相对于父视图中的坐标位置),而bounds的原点是(0,0)点(就是view本身的坐标系统,默认永远都是0,0点,除非认为setbounds), 这就是两个

2017-09-01 16:30:29 428

原创 Model属性生成器

很多小伙伴都会遇到这样的问题,在定义model时,要自己写很多的属性,如果碰到属性特别多的时候,只能一个一个慢慢写了,很是麻烦。下面给大家一个简单的属性生成器代码:// 自动生成属性声明的代码+ (void)propertyCodeWithDictionary:(NSDictionary *)dict{NSMutableString *strM = [NSMutableString string];

2017-08-31 15:59:11 682

原创 iOS 实现系统原生分享

目前绝大多数App都会有分享功能,以便于用户推广,譬如shareSDK等第三方被广泛应用,但是却需要注册账号,集成sdk等一系列复杂操作,今天来给大家说一下系统原生的分享是怎么实现的?话不多说, 直接上代码- (void)shareAction{ NSString *textToShare = @"发给我看看 笨蛋"; NSURL *urlToShare = [NSURL URL

2017-08-31 11:22:01 2604

原创 沙盒目录解析

简介:每个ios的应用程序都会有自己的沙盒,这个沙盒就是文件目录。特点:1.每个应用程序的活动范围都限定在自己的沙盒里 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒中的内容 (iOS8已经部分开放访问extension) 3.在访问别人沙盒内的数据时需要访问权限。好处:APP之间不能相互通,唯独可以通过URL Scheme可以通信, 比较安全!沙盒本身就是一个独立,安全,封闭的空间!下面

2017-08-29 12:01:19 581

原创 解决引入cocoapods第三方库头文件不提示的问题

针对刚刚在工程里添加cocoapods,并且已经下载了几个第三方库, 但是当我们引用其头文件时,发现不会提示,会不会很鸡肋?下面说一下相应的解决办法!解决步骤如上图:点击工程的target, 选择Build Setting 菜单在搜索框中输入 search path搜索找到User Header SearchPaths 点击后面的空白部分 弹出一个操作框点击加号, 在里面加入 $(PODS

2017-08-24 11:04:38 680

原创 Masnory 使用

Masonry是一个轻量级的自动布局库,采用独特的链式语法进行代码封装,具有高可用性和阅读性等特点, 下面来说一下几个实用的例子!设置类似下图的布局约束//设置一组button的约束- (void)masonryArrayWithButton{NSArray *titleArray = @[@"按钮1", @"按钮2", @"按钮3", @"按钮4"];NSMutableArray *mArray

2017-08-22 10:32:45 402

原创 ViewController 生命周期

loadView:加载view viewDidLoad:view加载完毕 viewWillAppear:控制器的view将要显示 viewWillLayoutSubviews:控制器的view将要布局子控件 viewDidLayoutSubviews:控制器的view布局子控件完成 这期间系统可能会多次调用viewWillLayoutSubviews 、 viewDidLayoutS

2017-08-21 15:11:24 192

原创 巧妙解决navigationBarTitle不显示问题

今天突然发现,项目里的页面标题没有显示,然后就各种尝试,各种设置navigationBar颜色等,最终也没能成功,最后想了一个办法,先把这个问题解决了! 代码如下:UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 64)]; if (isValidStr(self.titleString)) {

2017-08-21 14:30:43 8557

原创 WKWebView的简单使用

大家都知道iOS 8 之后,出了一个新的WKWebView,算是UIWebVeiw的升级版,对于它大家估计都有耳闻,下面先说一下它的一些优点:性能高,稳定性好,占用的内存比较小支持JS交互支持HTML5 新特性可以添加进度条支持内建手势据说高达60fps的刷新频率(不卡)因为最近在搭建一个新项目框架,所以封装了一个webView的基类,下面把它粘出来,大家仅供参考:.h@proper

2017-08-10 15:51:26 347

原创 HTTPS的工作流程的理解

http与HTTPS的区别在于,HTTPS较HTTP 多了一层SSL的数据加密过程,已达到安全传输的问题。下面来说一下自己对HTTPS工作流程的一点理解: 1. 客户端发起HTTPS请求。 2. 服务端生成公钥和私钥(可以自己制作,也可以向专业组织申请) 3. 服务端把相应的公钥证书传送给客户端 4. 客户端去解析证书的正确性,如果证书没问题,则会生成一个随机数(密钥),用公钥对产生的随机数

2017-07-12 10:25:31 609

原创 ios 实现控件右上角添加小红点

在很多情况下,我们会遇到添加小红点的需求,比如一个有了一条新动态会显示一个小红点,起到提示用户的作用。下面我来简单说一下我的实现方法,希望可以帮到大家!首先我是写了一个UIView的延展类, 方便以后直接调用。 代码如下:UIView+HMBadge.h//创建小红点#import <UIKit/UIKit.h>@interface UIView (HMBadge)/** * 通过创建lab

2017-07-07 17:34:02 3069

原创 限制输入数字小于100000000 小数点后2位

最近项目有个需求, 对输入的数字大小及样式有一些限制,开始以为很麻烦,不过产品设计如此,只能努力去实现,下面把实现代码粘出来,供大家参考!首先必须遵循UITextField的代理方法,然后去实现代理方法- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS

2017-07-07 10:22:03 808

原创 利用runtime实现UITextField文字大小适配机型

对于runtime, 大家估计都不会太陌生,今天我就来说一个关于它的使用实例:实现UITextfield文字适配, 其核心思想就是替换系统方法。 首先我们要创建一个延展类:UITextField+HMFontFit.h实现代码在UITextField+HMFontFit.m 中// 屏幕比例#define SizeScale ((SCREEN_H == 667) ? 1 : SCREEN_H/6

2017-07-06 11:54:17 254

原创 git 常用指令

git 对于程序员朋友们来说,再熟悉不过了, git为团队协作提供了极大的便利, 今天我把自己总结的一些常用指令分享给大家,希望能对大家有所帮助!回退到某个版本 : git reset –hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 (版本提交记录)把修改回退到远端: git push -f -u roigin master查看分支: git brabc

2017-07-05 15:35:11 183

原创 实现滑动菜单栏demo

开发过程中,很多界面都会涉及到滑动菜单的需求, 最近忙里偷闲,写了一个小demo ,仅供参考!话不多说,上代码, ~~~LXQScrollerView.h- (instancetype)initWithFrame:(CGRect)frame titleArray:(NSArray *)array;LXQScrollerView.m#define kWidth [UIScree

2017-07-05 15:22:34 547

原创 runtime 理解及实际应用

首先 , 什么是runtime?1>OC 是一个全动态语言,OC 的一切都是基于 Runtime 实现的 平时编写的OC代码, 在程序运行过程中, 其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者, 例如:OC :[[Person alloc] init]runtime :objc_msgSend(objc_msgSend("Person" , "alloc

2017-05-27 11:58:07 494

原创 ios 常用宏定义大全

闲来无事, 根据以往项目经验,罗列一些最常用的宏定义,以供参考!1. NSLog打印#if DEBUG#define NSLog(FORMAT, ...) fprintf(stderr, "[%s:%d行] %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8St

2017-05-26 16:46:28 303

原创 iOS 关于16进制RGB颜色设置问题

针对UI给的标注图上,色值给的都是16进制的,如#ED145B,#000000等等, 那么我们在代码中应该怎么使用这一色值呢?下面给出几种方案以供参考!1. 写一个宏定义:#define UGUColorFromRGB_0x(rgbValue) [UIColor \colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \green:

2017-02-10 15:54:49 704

原创 一般电商APP金钱格式转换

对有一个电商APP来说,显示商品价格是最寻常不过了,但是有一个问题,就是小数显示时精准度的问题,为此,苹果官方有一个API可以解决此问题。NSDecimalNumber,可以设置精准度,其有几个属性可以设置,如下:NSRoundPlain, // Round up on a tie //貌似取整 NSRoundDown, // Always down == truncate //只舍不入

2017-02-10 15:39:06 469

原创 iOS 编码注意事项及技巧

1.防止代码中的硬编码比如订单状态,订单来源类型等, 之前的代码里面全是直接写的1,2,3,4等等的状态码, 如果不看相关文档时间一长很难搞清楚状态码对应的是那种状态,类似这样的情况最好写成枚举值,在用的时候也会比较清晰,而且点进去查看 也可以看到每个状态码具体对应哪个状态2.定义接口请求API每个请求定义一个自己的API,统一管理,这样会使代码结构看起来更加的清晰,假如要更换某个接口的请求地址,就

2017-02-10 15:22:30 476

原创 SDWebImage介绍

SDWebImage相关介绍基本方法 :1.图片加载[imageView      setImageWithURL:[NSURL URLWithString:url]];2.下载图片的两种方式(1) [[SDWebImageDownloader sharedDownloader]downloadImageWithURL:[NSURL URLWithString:url] o

2017-02-10 15:15:59 1416

原创 数字格式化为金额格式 (3位一个逗号隔开)

最近在写一个项目,项目中多次遇到金钱格式的问题,所以自己写了一个方法用于格式的转化- (NSString *)changeStringType:(NSInteger)price{ CGFloat changePrice = price / 100; NSMutableString *priceString = [[NSMutableString alloc] initWithFor

2016-03-24 17:44:56 2222

转载 多线程大全

PthreadsNSThreadGCDNSOperation & NSOperationQueue

2016-03-10 14:39:19 326

原创 清理缓存的几种方法

在开发移动过程中, 清理缓存是最常见的一种功能, 接下来给大家介绍几种清理缓存的方法第一种:- (void)action:(id)sender{//彻底清除缓存第一种方法UIButton * button = sender;[button setTitle:@"清理完毕" forState:UIControlStateNormal];NSArray *paths = NSSearchPat

2015-12-28 14:34:20 884

原创 清除缓存

今天给大家介绍一种简单的清除缓存的方法, 大家看过之后一定会理解这种简单的清除缓存的方法在做项目的时候, 清除缓存是一个很常用的且很有必要的东西, 之前我也从网上找了一种方法清除缓存, 但是比较麻烦, 而且不容易理解, 后来就发现了这个简单的方法, 下面就把这个方法分享给大家, 希望可以帮到大家.首先大家可以建一个按钮或者在一个tableView的cell, 点击关联到一个方法 NS

2015-10-12 10:01:54 489

原创 长按图片 把图片存到相册

小伙伴们, 这次和大家分享一个很简单的技术, 就是把图片存到相册 首先, 肯定需要一个UIImageView 用于展示图片, 接下来就要用到长按手势, 将长按手势添加到UIImageView上, 代码示例如下:UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget

2015-10-12 09:35:16 4299

原创 XML 和 JSON 解析数据

对于数据的解析方式有两种: XML 和 JSON 解析 下面来给大家简单介绍一下这两种解析方式 , 希望能帮到您!XML解析方式//这个系统的解析方式- (IBAction)xmlParserWithSAX:(UIButton *)sender { //SAX解析的方式: 逐行解析, 效率比较低, 资源消耗比较小, 如果xml格式有误, 错误之前的可以解析 //NSXMLParse

2015-09-02 20:09:30 640

原创 UI相关知识总结

UI相关知识总结>所有的视图都是矩形 //常用设置: //CGRect, CGSize, CGPoint //CGRectGetMaxX(), CGRectGetMaxY(), CGRectGetMinX(), CGRectGetMinY()//坐标系/* -------------->x轴 | | | | | V y轴 */

2015-09-02 19:51:09 524

原创 UI中常用的4种传值

常见的四种传值方式: 单例, 属性, block, delegate

2015-09-01 22:07:10 366

原创 iOS开发数据库, sqlite,

常见的数据库: access, MySQL, SQLServer, Oracle移动开发常用的轻量级数据库: sqlite数据库常见的操作: 创建表, 增删改查数据

2015-09-01 21:01:03 332

testQQ.zip

最近闲来无事,自己写的一个仿QQ空间下拉图片拉伸及导航栏颜色渐变demo ,有兴趣的童鞋可以下载看下哦

2020-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除