- 博客(30)
- 收藏
- 关注
转载 iOS开发的一些小技巧
1.任意设置Cell选中状态的背景色:UIView *bgView = [[UIView alloc] init];bgView.backgroundColor = [UIColor orangeColor];self.selectedBackgroundView = bgView;该方法设置的是纯色, 也可以使用任何图片,把selectedBackgroundView设成UIImageVie
2016-04-02 19:30:29
776
转载 UITableView的介绍及使用
前言UITableView堪称UIKit里面最复杂的一个控件了,使用起来不算难,但是要用好并不容易。当使用的时候我们必须要考虑到后台数据的设计,tableViewCell的设计和重用以及tableView的效率等问题。下面分9个方面进行介绍:一、UITableView概述UITableView继承自UIScrollView,可以表现为Plain和Grouped两种风格。查看UITableView
2016-04-02 18:54:04
454
转载 页面间跳转的性能优化(一)
前言现在App的页面越来越复杂,页面初始化的工作越来越多,加载页面所需的时间也随之增长,如果页面加载的时间过长,这将会影响App的流畅度及用户体验,我们需要解决这一问题。观察过一些日常使用的App,页面间跳转的性能问题总结为以下三种情形:1).A页面跳转到B页面,由于B页面需要加载大量的数据,所以导致页面跳转延迟。2).A页面跳转到B页面,由于B页面需要加载大量UI元素,所以导致页面跳转延迟。3).
2016-04-02 11:03:17
863
原创 iOS中Cookie的使用
前段时间,在工作中使用到Cookie,就简单的了解了一下Cookie. Cookie是服务器响应的数据,可以理解为Cookie就是发送网络请求后服务器返回的一种数据对象,就像字典一样。 应用场景:你发送一个网络请求,服务器要判断你是不是登录账号后发送的请求,根据是否登录,来返回不同的数据 大致流程:发送请求-服务器返回Cookie数据-APP保存Cookie到沙盒-下次网络请求把Cookie放
2016-03-20 22:57:29
872
原创 NSString转GBK编码格式
utf-8转GBK编码在这里就不说了,网上的答案很多,只说一下NSString转GBK编码格式,使用的时候,在网上也搜了很多答案,但是基本上都是错误的。正确的转法//设置GBK编码格式NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000
2016-03-20 22:01:05
1245
原创 关于SB的Layout优先级(priority)
效果图 1.当车牌号码中文字长度大于0时,显示左边的label 2.当车牌好码中文字长度大于5时,显示下面的view,以及改变查询按钮的位置思路:1.设置车牌号码输入框分别于左侧“车牌号码”以及“豫”的约束,分别设置约束优先级,并且连线。先让“豫”隐藏。当文字长度大于1时,让文本输入框与“豫”的优先级最大 2.同理,分别设置查询按钮与上面的优先级,监听文本长度,设置优先级,具体看代码 //车
2016-03-14 23:16:02
780
原创 iOS中.PCH文件的配置及使用
在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。PCH文件的作用1.用来包含一些使用频率较高的头文件 2.存放一些全局的宏 3.因为是预编译文件,运行项目会加大编译时间,所以在Xcode6之后,苹果为了避免滥用pch
2016-03-12 13:01:06
590
转载 XML与JSON的区别
JSON和XML的比较可读性JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。 可扩展性XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,而JSON却不能。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。编码难度XML有丰富的编码工具,比如Dom4j、JDom等,JSON
2016-02-04 10:43:18
816
原创 Core Animation实例3-倒影效果(CAReplicatorLayer复制层)
效果 利用CAReplicatorLayer做出的效果 注意: 设置控制器view的layer为CAReplicatorLayer,那么控制器上所有的控件都可以复制 自定义控制器view,设置layer为CAReplicatorLayer// 设置view里面根层的类型+ (Class)layerClass{ return [CAReplicatorLayer class];
2016-02-03 14:18:50
756
原创 Core Animation实例2-活动指示器(CAReplicatorLayer复制层)
demo 可以利用CAReplicatorLayer复制层给View添加一直活动状态的动画,并且可以设置复制时间与动画时间的比值,设定显示效果,比如说上图:复制时间是动画时间的三倍,显示三个动画效果 直接上代码@interface ViewController ()@property (weak, nonatomic) IBOutlet UIView *redView;@end@impleme
2016-02-03 11:20:30
463
原创 Core Animation实例1-音量振动条(CAReplicatorLayer复制层)
分析震动条界面每一个条都在做一个上下缩放的动画.而且不需要与用户交互.所以每一个震动条可以用CALayer来做. 发现每个都非常相似.所以先搞定一个,然后其它的直接复制就可以了.添加动画添加高度缩小后,马上还原 为什么选用核心动画? 给图层做动画用核心动画,不需要与用户做交互.采用哪一种核心动画?把它的缩放改成某个值就好了.选用CABasicAnimation CABasicAnima
2016-02-03 10:11:31
617
原创 Core Animation实例-图片折叠效果(CAGradientLayer渐变层)
1.分析界面效果当鼠标在图片上拖动的时候,图片有一个折叠的效果. 这种折叠效果其实就是图片的上半部分绕着X轴做一个旋转的操作. 我们图片的旋转都是绕着锚点进行旋转的.所以如果是一张图片的,办不到只上图片的上半部分进行一个旋转. 其实是两张图片, 把两张图片合成一张图片的方法, 实现方案.弄上下两张图片,上上部图片只显示上半部分, 下部图片只显示下半部分.2.如果让一张图片只显示上半部分或者下
2016-02-03 09:50:25
1068
原创 Core Animation(核心动画)的基本介绍与使用
Core Animation简介Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。Core Animation可以用在Mac OS X和iOS平台。Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。要注意的是,Core Animat
2016-02-02 16:12:18
1522
原创 CALayer的基本使用
CALayer的基本属性在这里不多说了,网上对属性和方法介绍的很清楚,下面直接上demo效果时钟主要使用到的几个知识点anchorPoint(锚点)与position的使用用NSCalendar和NSDateComponents拿到日期的组件#import "ViewController.h"// 每秒秒针转6°#define kPerSecondA 6// 每分钟分针转6°#defin
2016-02-02 12:19:29
516
原创 iOS事务的基本概念
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。 针对上面的描述可以看出,事务的提出主要是为了解决
2016-02-02 10:02:09
527
转载 离屏绘制
在研究如何高性能的给UIImageView加圆角时,之前知道用self.view.layer直接设置cornerRadius,masksToBounds会出现性能问题,当设置的图片多的时候会出现卡顿现象,但是对于原因却是不清楚,后来发现用上面的方法出现卡顿现象是因为:强制Core Animation提前渲染屏幕的离屏绘制,而离屏绘制会给性能带来负面的影响,下面是对离屏绘制的解释一、概念理解OpenG
2016-02-01 19:51:22
1685
原创 UIImagePickerController简单使用
UIImagePickerController为系统的照片选择器选择相册里的照片// 选择照片- (IBAction)pickerPhoto:(id)sender { // 进入系统的相册UIImagePickerController // 创建一个照片选择控制器 UIImagePickerController *imagePickerVc = [[UIImagePicker
2016-02-01 16:11:27
389
原创 手势滑动解锁
思路遍历生成且设置按钮当手指点击或者滑动的时候拿到当前触摸点,遍历每一个按钮,将当前触摸点转换为按钮上点,判断时候在按钮上如果在按钮上,设置当前按钮为选中状态,添加到选中按钮数组中在drawInRect:中画线,遍历每一个按钮,让第一个按钮的中心点为线段的起点松开手指时,清空选中按钮数组中的值,重绘 @interface LockView ()@property (nonatomic, a
2016-02-01 16:03:48
912
原创 图片擦除
图片擦除添加一张图片,模仿橡皮擦功能- (IBAction)pan:(UIPanGestureRecognizer *)sender { // 获取当前触摸点 手势有一个View属性,View是添加了手势的view CGPoint curP =[sender locationInView:sender.view]; // 确定擦除区域 CGFloat wh = 30;
2016-02-01 15:42:23
584
原创 截图
屏幕截图- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // 截屏,生成跟view一样的图片 // 开启位图上下文 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0); // 获取当前上下文==>位图上
2016-02-01 15:39:09
449
原创 关于Quartz2D的几个demo
画饼图- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [self setNeedsDisplay];}// Only override drawRect: if you perform custom drawing.- (void)drawRect:(CGRect)rect { // Draw
2016-01-31 21:49:03
471
原创 抽屉效果
效果 - 向右滑动显示左视图,向左滑动显示右视图 - 滑动时根据主视图的偏移量,改变主视图的大小,位置思路1.在中间view上添加一个拖拽手势2.在拖拽方法中拿到X偏移量,设置修改当前view的frame3.设置显示左边View还是右边View,通过KVO监听当前view的x值正负4.当松手时,设置最后定位在那边。监听手势状态,根据当前松手时位置,进行位置判断,设置偏移量,确定最后的位置
2016-01-31 15:49:04
472
原创 #define 自动提示宏
自动提示宏:就是在输入宏的时候有提示功能 需求例子:比如说想要通过KVO监听View的frame改变,正常是这样写[_mainView addObserver:self forKeyPath:@"frame"options:NSKeyValueObservingOptionNew context:nil];上面写的缺点:监听KeyPath必须是字符串,写字符串没有提示,容易写错。KVO中想要的提示
2016-01-31 11:22:51
844
原创 UIGestureRecognizer手势
监听触摸事件的做法如果想监听一个view上面的触摸事件,之前的做法是自定义一个view实现view的touches方法,在方法内部实现具体处理代码通过touches方法监听view触摸事件,有很明显的几个缺点必须得自定义view由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件不容易区分用户的具体手势行为iOS 3.2之后,苹
2016-01-30 15:13:41
508
原创 响应者
响应者链条示意图响应者链条:是由多个响应者对象连接起来的链条作用:能很清楚的看见每个响应者之间的联系,并且可以让一个事件多个对象处理。响应者对象:能处理事件的对象 响应者链的事件传递过程如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理如果window
2016-01-30 14:47:31
541
原创 iOS中的事件产生与传递
触摸事件iOS中的事件可以分为3大类型:触摸事件,加速计事件,远程控制事件.在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”UIView的触摸事件处理UIView是UIResponder的子类,可以覆盖下列4个方法处理不同的触摸事件一根或者多根手指开始触摸view,系统会自动调用view的下面方法 (void)touchesB
2016-01-28 21:52:22
570
原创 UIView的transform属性及使用案例
transform属性作用:给我们的控件做一些形变,(平移,缩放,旋转)移动// 平移//每次移动都是相对于上次位置 _redView.transform = CGAffineTransformTranslate(_redView.transform, 100, 0);//每次移动都是相对于最开始的位置 _redView.transform = CGAffineTransformMakeTr
2016-01-26 23:45:26
5173
原创 ScrollView的几个重要的属性
contentSize://滚动范围,内容的尺寸contentInset://内边距contentOffset://偏移量(scrollView.bounds.origin)bounds://以自己内容的左上角为坐标原点,scrollView矩形框的位置个尺寸frame://以父控件内容的左上角为坐标原点,scrollView矩形框的位置和尺寸以上是scrollView的几个重要的属性,接
2016-01-26 09:33:05
1424
原创 新浪微博个人详情页
知识点:tableView中结合偏移量,内边距计算等逻辑实现 稍微注意的是: - 1.显示主页 微博 相册的选项栏,是组头视图 - 2.显示背景头像及头像的view是头部视图 - 3.向下拖动,图片拉伸的细节:在SB中设置图片填充模式(Mode):AspectFill. 并且设置超出父视图的子控件剪切掉 - - 设置导航条背景图片时,使用了一个image分类 其它实现说明,都在代码注
2016-01-25 21:04:34
1100
原创 UIPickView与UIDatePicker的使用
介绍UIPickView和UIDatePicker1.UIPickView什么时候用?通常在注册模块,当用户需要选择一些东西的时候,比如说城市,往往弹出一个PickerView给他们选择。老虎机效果2.UIPickView常见用法独立的,没有任何关系 => 菜单系统。相关联的,下一列和第一列有联系=> 省会城市选择图文并帽, => 国旗选择。3.UIPickView4.UIDatePi
2016-01-25 12:03:20
2067
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人