iOS
文章平均质量分 67
付国良丶
万事从头始、风烟至此无。
展开
-
【iOS开发系列】tableView滚动淡出效果
if (!statusBarBackgroundView) { CGRect barRect = CGRectMake(0.0f, 0.0f, 320.0f, 30.0f); statusBarBackgroundView = [tableView.backgroundView resizableSnapshotViewFromR原创 2016-03-14 11:34:52 · 680 阅读 · 0 评论 -
【iOS开发系列】XIB IBOutlets use strong or weak ?
有人问,在ARC下,IBOutlets到底应该定义成strong 还是 weak ?支持这个答案的人最多,答案仅是摘自官方文档的一个片段: From a practical perspective, in iOS and OS X outlets should be defined as declared properties. Outlets should generally b原创 2015-07-22 15:32:34 · 795 阅读 · 0 评论 -
【iOS开发系列】延时执行的几种方式
/* 本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法. */- (void)delayMethod{ NSLog(@"execute");}/** * 【1】.performSelector方法 */[self performSelector:@selector(delayMethod) withObject:nil afterDelay:原创 2015-07-22 11:03:24 · 691 阅读 · 0 评论 -
【iOS开发系列】NSObject方法介绍
NSObject是OC中的基类,所有类都继承于此,这里面也给我们提供了很多与“类”和“方法”相关的方法,本文将讲解几个非常实用的方法。正文:Person.h#import @interface Person : NSObject @endStudent.h#import "Person.h"// 继承Person类@interface S原创 2015-07-22 16:54:41 · 776 阅读 · 0 评论 -
【iOS开发系列】scrollView中的directionalLockEnabled
scrollView中的directionalLockEnabled的功能本来就是用来让用户每次只在一个方向上滚动,竖直或者水平,但是如果初始移动方向处于45°左右的时候,这个锁就失效了。苹果官方发现了这个问题,在官方文档里有如下描述,但是没有解决:"If this property is NO, scrolling is permitted in both horizon原创 2015-07-21 18:17:21 · 3963 阅读 · 0 评论 -
【iOS开发系列】MD5加密
#pragma mark - MD5+ (NSString *)stringFromMD5:(NSString *)string{ if(string == nil || [string length] == 0) { return nil; } const char *value = [string UTF8String]; unsigned原创 2015-08-26 17:44:17 · 640 阅读 · 0 评论 -
【iOS开发系列】将阿拉伯数字转换为中文数字
/** * 将阿拉伯数字转换为中文数字 */+(NSString *)translationArabicNum:(NSInteger)arabicNum{ NSString *arabicNumStr = [NSString stringWithFormat:@"%ld",(long)arabicNum]; NSArray *arabicNumeralsArray = @原创 2015-08-26 13:28:04 · 4413 阅读 · 0 评论 -
【iOS开发系列】跳转到AppStore
在开发中经常需要跳转到AppStore进行下载或者评价。在iOS6.0后,Apple增加了一个新的功能,当用户需要给APP进行评分的时候,不再需要跳转到AppStore了,可以在应用内置AppStore,苹果提供了一个框架StoreKit.framework。具体的实现步骤如下:① 导入StoreKit.framework,在需要跳转的控制器里面添加头文件 #import② 实原创 2015-08-12 15:34:47 · 670 阅读 · 0 评论 -
【iOS开发系列】物理仿真动画UIDynamic (1)
iOS开发拓展篇—UIDynamic(简单介绍)【一】简单介绍1.什么是UIDynamicUIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象如:重力、弹性碰撞等现象2.物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿原创 2015-07-31 12:49:40 · 845 阅读 · 0 评论 -
【iOS开发系列】颜色渐变
记录:原创 2015-08-11 14:15:25 · 527 阅读 · 0 评论 -
【iOS开发系列】用简单工厂模式理解OC反射机制
// 在iOS开发中,简单工厂模式使用得并不多。但是、我认为这是OC反射机制很好的一个例子,// 所以本文将以计算器为例,讲解简单工厂模式和OC的反射机制。// 【简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(// 这些产品类继承自一个父类或接口)的实例。该模式中包含的角色及其职责:工厂角色、抽// 象产品角色、具体产品角色】//原创 2015-07-22 17:41:48 · 994 阅读 · 0 评论 -
【iOS开发系列】简单动画效果
CABasicAnimation 自己只有三个property fromValue toValue ByValue当你创建一个 CABasicAnimation 时,你需要通过-setFromValue 和-setToValue 来指定一个开始值和结束值。 当你增加基础动画到层中的时候,它开始运行。当用属性做动画完成时,例如用位置属性做动画,层就会立刻 返回原创 2015-07-23 12:39:30 · 866 阅读 · 0 评论 -
【iOS开发系列】collectionView头部悬浮
//// WNCalendarCollectionLayout.h// Calendar//// Created by 付国良 on 16/3/22.// Copyright © 2016年 日历. All rights reserved.//#import @interface WNCalendarCollectionLayout : UICollectionView原创 2016-03-22 16:14:59 · 2111 阅读 · 0 评论 -
【iOS开发系列】tableViewCell简单动画
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ CATransform3D rotation; rotation = CATransform3DMakeRotation(原创 2016-03-10 14:02:58 · 945 阅读 · 0 评论 -
【iOS开发系列】escape编码
+(NSString *)escape:(NSString *)str{ NSArray *hex = [NSArray arrayWithObjects: @"00",@"01",@"02",@"03",@"04",@"05",@"06",@"07",@"08",@"09",@"0A",@"0B",@"0C",@"0D",@"0E",@"0F",原创 2016-03-07 23:27:23 · 1950 阅读 · 1 评论 -
【iOS开发系列】颜色渐变
- (void)insertTransparentGradientWithView:(UIView *)view{ UIColor *colorOne = [UIColor colorWithRed:1.0/255.0 green:1.0/255.0 blue:1.0/255.0 alpha:0.3]; UIColor *colorTwo = [UIColor colorW原创 2015-12-28 12:02:42 · 655 阅读 · 0 评论 -
【iOS开发系列】繁简转换
+ (NSString *)returnGBKSting{ return @"锕皑蔼碍爱嗳嫒瑷暧霭谙铵鹌肮袄奥媪骜鳌坝罢钯摆败呗颁办绊钣帮绑镑谤剥饱宝报鲍鸨龅辈贝钡狈备惫鹎贲锛绷笔毕毙币闭荜哔滗铋筚跸边编贬变辩辫苄缏笾标骠飑飙镖镳鳔鳖别瘪濒滨宾摈傧缤槟殡膑镔髌鬓饼禀拨钵铂驳饽钹鹁补钸财参蚕残惭惨灿骖黪苍舱仓沧厕侧册测恻层诧锸侪钗搀掺蝉馋谗缠铲产阐颤冁谄谶蒇忏婵骣觇禅镡场尝长偿肠厂畅伥苌怅原创 2015-11-12 19:14:42 · 2195 阅读 · 0 评论 -
【iOS开发系列】NSClassFromString、NSSelectorFromString、isKindOfClass、isMemberOfClass
【1】NSClassFromString 这个方法判断类是否存在,如果存在就动态加载的,不存为就返回一个空对象; id myObj = [[NSClassFromString(@"MySpecialClass")alloc] init]; 正常情况下等价于: id myObj = [[MySpecialClass原创 2015-09-02 15:29:39 · 589 阅读 · 0 评论 -
【iOS开发系列】iOS中常用函数表
介绍一下Objective-c常用的函数,常数变量算术函数【算术函数】函数名说明int rand()随机数生成。(例)srand(time(nil)); //随机数初期化int val = rand()P; //0~49之间的随机数int abs(int a)整数的绝对值(例)int val转载 2015-07-24 18:14:29 · 462 阅读 · 0 评论 -
【iOS开发系列】九宫格布局
/** * 这个虽然很容易,算是一个小技巧,但是碰到了就记录下来吧.积跬步,致千里嘛. */- (void)scratchableLatex{ for (int i=0; i<9; i++) { UIView *view = [[UIView alloc]initWithFrame:CGRectMake(i%3*100+50, i/3*100+50, 50原创 2015-07-24 16:53:23 · 619 阅读 · 0 评论 -
【iOS开发系列】单例模式宏(兼容ARC和非ARC)
/** * ##:连接字符串和参数 */#define singleton_h(name) + (instancetype)shared##name;/** * 【 ARC】环境 */#if __has_feature(objc_arc)#define singleton_m(name)原创 2015-06-24 19:28:47 · 427 阅读 · 0 评论 -
【iOS开发系列】cell分割线置顶
废话不多说,直接上代码:/** * tableViewCell分割线左侧置顶 */-(void)viewDidLayoutSubviews{ if ([_tableView respondsToSelector:@selector(setSeparatorInset:)]) { [_tableView setSeparatorInset:UIEdgeIn原创 2015-07-15 14:00:48 · 784 阅读 · 0 评论 -
【iOS开发系列】UIDevice设备信息
【1】 判断是否是横向屏:BOOL b=UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation); 获取设备uniqueIdentifier :[UIDevice currentDevice].uniqueIdentifier;但在ios5中,它已被废弃。http://kensou.blo原创 2015-07-15 11:11:57 · 840 阅读 · 0 评论 -
【iOS开发系列】NSSet & NSIndexSet
NSSetNSSet和NSMutableSet是无序的, 但是它保证数据的唯一性。当插入相同的数据时,不会有任何效果。从内部实现来说是hash表,所以可以常数时间内查找一个数据。1、NSSet的使用[NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造[NSSet setWithArray:(NSArray *)array];原创 2015-07-14 20:24:51 · 1143 阅读 · 0 评论 -
【iOS开发系列】启动页面广告(可实现动态加载)
很多APP启动的时候,需要动态的更换启动页面,可以在这个地方增添广告或者是将APP中新加入的一些活动信息等展示给用户。废话不多说,上代码:首先声明一下我们需要的这个页面:@property (strong, nonatomic) UIView *ADView;@synthesize ADView;一般都是在AppDelegate中的这个方法进行实现,当然这里面的图片原创 2015-07-07 10:11:36 · 4291 阅读 · 0 评论 -
【iOS开发系列】后台模式
IOS里面的后台模式 本文介绍下ios的后台模式,本文是一篇译文,原文地址:点击打开链接 从ios4开始,当用户点击home键之后,你可以设计你的应用,使它在内存中挂起。虽然应用还在内存中,但是所有的操作都被暂停了,除非用户重新开启应用。是吧? 当然也有一些例外不遵循这个规则。在某种情况下,应用依旧在后台运行代码,本篇教程就来告诉你什么时候转载 2015-07-07 17:07:19 · 1476 阅读 · 0 评论 -
【iOS开发系列】网络开发
概览大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的。如今,网络编程越来越普遍,孤立的应用通常是没有生命力的。今天就会给大家介绍这部分内容:Web请求和响应使用代理方法简化请求方法图片缓存扩展--文件分段下载扩展--文件上传NSURLSession数据请求文件上传文件下载转载 2015-07-08 17:52:21 · 441 阅读 · 0 评论 -
【iOS开发系列】性能优化建议和技巧
性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然而由于iOS设备的限制,有时搞好性能是一件难事。开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响。这正是我写下这篇文章的原因。这篇文章以一个方便查看的核对表的形式整合了你可以用来提升你app性能的25条建议和技巧。请耐心读完这篇文章,为翻译 2015-07-09 16:52:48 · 610 阅读 · 0 评论 -
【iOS开发系列】地图与定位
概览现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。例如你到了一个陌生的地方想要查找附近的酒店、超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品。总之,目前地图和定位功能已经大量引入到应用开发中。今天就和大家一起看转载 2015-07-09 19:19:17 · 605 阅读 · 0 评论 -
【iOS开发系列】tableView详解
概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信、QQ、新浪微博等软件基本上随处都是UITableView。当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论。今天的主要内容包括:基本介绍数据源代理性能优化UITableViewCell常用操作UITableViewCo转载 2015-07-09 19:52:29 · 683 阅读 · 0 评论 -
【iOS开发系列】常用的第三方库
1.AFNetworking 目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理。 2.FMDB 对sqlite数据库操作进行了封装,demo也比较简单。 3.MBProgressHUD 也是iOS项目常用的一个组件,用于显示过渡效果的,比如网络请求之前显示loa转载 2015-06-24 18:36:46 · 349 阅读 · 0 评论 -
【iOS开发系列】更换头像(相机、相册)
/** * 更换头像按钮点击 */- (void)userIconChange{ UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:nil delega原创 2015-07-03 18:43:33 · 799 阅读 · 0 评论 -
【iOS开发系列】版本新特性界面
首先我们需要创建一个版本新特性的控制器,继承自UIViewController@interface NewFeatureViewController (){ UIPageControl *_page; UIScrollView *_scroll;}@end在实现模块中写如下代码#pragma mark - viewDidLoad- (void)viewDidLoa原创 2015-07-06 17:27:08 · 474 阅读 · 0 评论 -
【iOS开发系列】隐藏状态栏
/* iOS7隐藏状态栏 */if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]){ [self prefersStatusBarHidden]; [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)]原创 2015-07-03 18:39:18 · 455 阅读 · 0 评论 -
【iOS开发系列】KVC&KVO
Key Value CodingKey Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property accssor, 如我们有个property叫做foo, 我们可以foo直接访问它,同样我们也可以用KVC来完成[Object valueForKey:@“foo”], 有同学就会问了, 这样做有什转载 2015-07-14 13:32:49 · 786 阅读 · 0 评论 -
【iOS开发系列】block的使用
iOS block的用法本文来自台湾的某开发人员的博客,被墙,感觉讲的比较易懂,所以引过来。文字简体化了,原来是繁体,变数=变量,这个注意一下。本文的顺序是层层深入的,要想简单的了解,只看X.1 初探Block就好了本章学习目标:1. 了解何谓block。2. 了解block的使用方法。Block 是iOS在4.0之后新增的程式语法,严格来说block的翻译 2015-07-14 14:57:39 · 506 阅读 · 0 评论 -
【iOS开发系列】个性化UITextView
// 总体来说个性化定制UITextView中的内容有两种方法:// 1.从文件中读取内容到UITextView,这个个人感觉使用rtfd和rtf格式文件效果非常好。// 2.使用NSAttributeString进行定制// 具体方法如下:NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle allo原创 2015-07-11 13:08:30 · 421 阅读 · 0 评论 -
【iOS开发系列】多线程开发
概览大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此时对于转载 2015-06-24 18:03:13 · 524 阅读 · 1 评论 -
【iOS开发系列】block编程
介绍声明创建和调用Block和变量Block实际应用1.介绍Block是一个C Level的语法以及运行时的一个特性,非常像标准C中的函数(函数指针),但是其运行需要编译器和运行时支持,目前LLVM+Clang可以很好的支持Block(苹果修改过的GCC也可以)。Block和函数不同的是其语义 闭包 特性,以及可以有匿名block的存在。 你可以在LLVM的官方网站查看Bloc转载 2015-06-25 15:04:14 · 375 阅读 · 0 评论 -
【ios开发系列】block详解
【1】ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发。讨论范围:block的使用,内存管理,内部实现。不包含的内容:gc arc下的block内存,block在c++中的使用。一、概述Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存转载 2015-06-25 16:18:49 · 850 阅读 · 0 评论