- 博客(28)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 iOS 保持界面流畅的技巧(最全最详尽的了)
这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。演示项目在开始技术讨论前,你可以先下载我写的 Demo 跑到真机上体验一下:https://github.com/ibireme/YYKit。 Demo 里包含一个微博的 Feed 列表、发布视图,还包含一个 Twitter 的 F
2015-12-29 14:01:32
790
转载 说说objcRuntime的一些妙用(class_addMethod,class_replaceMethod)
版权声明:本文为博主原创文章,未经博主允许不得转载。前言:陈列一下今天要讲的知识点:class_addMethod,class_replaceMethod,method_getImplementation,object_getClass涉及到的知识》》使用category,通过Runtime实现用自己的函数调换掉原生函数》》oc的message forwar
2016-02-09 17:54:55
519
转载 Objective-C与JavaScript交互的那些事
最近公司的运营瞎搞了个活动,其活动要服务端提供数据支持,web前端在微信公众账号内作为主要的运营阵地,而iOS、Android要提供相应的入口及页面进行配合。一个活动,动用了各个端的程序猿。而在这里面技术方面主要就是涉及到web端和服务端的交互,web前端和iOS、Android的交互。本人作为一个iOS开发者,今天就聊聊web、iOS、Android三端的交互,其实在说明白一点就是方法的互相调用
2016-01-31 18:31:38
414
转载 iOS中edgesForExtendedLayout与automaticallyAdjustsScrollViewInsets
在IOS7以后 ViewController 开始使用全屏布局的,而且是默认的行为通常涉及到布局就离不开这个属性 edgesForExtendedLayout,它是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图
2016-01-31 18:01:30
372
原创 网络协议:TCP/IP、UDP、Http、Socket
简而言之:UDP:UDP是一种面向无连接的用户数据报服务(user data protocol),不需要和服务器也能交互,只需要知道ip和监听端口,不需要链接没有目的的socket,只是将数据报投递出去,不管接收方是否成功接收到,因此是一种不可靠的传输,可能会造成数据丢包,但由于这些特征,传输效率要优于TCP。例如QQ传输TCP:TCP是一种面向连接的传输控制协议(transfor
2016-01-25 14:30:15
732
翻译 RunLoop解析(视频+原版文字)
参考(抄袭)资料深入理解RunLoop,by @Ibireme孙源的线下分享视频低清在线,高清无码视频,Key Note 文件,by @Sunnyxx (AV画质视频:传送门 高清画质视频:传送门)RunLoop 的苹果官方文档建议搭配以上资料辅助阅读RunLoop 是什么鬼首先,在一般情况下,代码的执行是线性的,执行完成之后就会退出返回:
2016-01-20 16:03:31
1486
1
转载 Quartz2D-drawRect方法绘制图片、文字
一、画文字代码: 1 // 2 // YYtextview.m 3 // 04-写文字 4 // 5 // Created by 孔医己 on 14-6-10. 6 // Copyright (c) 2014年 itcast. All rights reserved. 7 // 8 9 #import "YYtextview.h"10 11 @im
2016-01-18 11:53:34
511
转载 Fundation快速框架搜索
Fundation快速框架搜索基本上包含了Foudation框架内的所有函数和方法。使用方法:全选,自己建一个文本类的文件,如果要使用某个方法却想不起来方法名,直接在文本中搜索关键字即可。 2.1 算术运算函数 2.1.1 rand()函数:产生随机数 2.1.2 abs()函数/labs()函数:整数的绝对值
2016-01-17 16:54:26
472
转载 iOS 字符属性NSAttributedString描述
/* 字符属性 字符属性可以应用于 attributed string 的文本中。 NSString *const NSFontAttributeName;(字体) NSString *const NSParagraphStyleAttributeName;(段落) NSString *const NSForegrou
2016-01-14 16:03:36
300
转载 CALayer 以及时间模型
转自http://geeklu.com/2012/09/animation-in-ios/二.CALayer及时间模型我们都知道UIView是MVC中的View.UIView的职责在于界面的显示和界面事件的处理.每一个View的背后都有一个layer(可以通过view.layer进行访问),layer是用于界面显示的.CALayer属于QuartzCore框架,非常重要,但并没有想象中
2016-01-13 12:52:10
532
转载 深入理解RunLoop
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。RunLoop 的概念一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让
2015-12-29 15:31:59
401
转载 Quartz2D——自定义圆形进度条
之前做项目的时候有用到环形进度条,先是在网上找了一下第三方控件,发现好用是好用,就是东西太多了,有点复杂,还不如自己写一个简单点适合自己用的。先把自定义控件的效果图贴出来。 其实我写的这个控件很简单。索性就直接把源码贴出来吧。.h文件的内容就是一些声明[objc] view plaincopy#i
2015-12-26 15:22:30
531
转载 Quartz2D——CGContext小记
0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文1 CGContextMoveToPoint 开始画线2 CGContextAddLineToPoint 画直线4 CGContextAddEllipseInRect 画一椭圆4 CGContextSetLineCap 设置线条终点形状4 CGCont
2015-12-26 14:57:24
367
转载 TableView性能优化——动态cell适应工具(UITableView+FDTemplateLayoutCell)
———————前前言————————————————————本文会主要阐述主流的cell高度返回方式、并以原文为框架进行了一些扩展补充。文章最后、列出了UITableView+FDTemplateLayoutCell工具的使用、介绍以及实现。so、如果你只需要UITableView+FDTemplateLayoutCell工具、请移步最下方阅读。此外、文中所使用的Self Sizing
2015-12-25 17:50:39
686
转载 UITableView - beginUpdates和endUpdates方法
1. beginUpdates方法和endUpdates方法是什么呢?这两个方法,是配合起来使用的,标记了一个tableView的动画块。分别代表动画的开始开始和结束。两者成对出现,可以嵌套使用。一般,在添加,删除,选择 tableView中使用,并实现动画效果。在动画块内,不建议使用reloadData方法,如果使用,会影响动画。如果我们的UITableV
2015-12-25 16:23:31
906
转载 UITableview性能优化总结—图片加载、行高返回
UITableView作为ios中使用最频繁的控件之一,其性能优化也是常常要面对的,尤其是当数据量偏大并且设备性能不足时。本文旨在总结tableview的几个性能优化tips,并且随着认识的深入,本文将持续更新,力求将tableview的优化做到极致!Let`s begin!治病就要先知道病因,我们先来分析一下影响tableview滚动性能的因素有哪些:
2015-12-24 22:37:07
402
转载 关于XIB/NIB/storyboard以及相关
——首先、关于xib和nib————————————————————————————————————————————————————————————————————————————————————————————————nib 是NeXT Interface Builder的缩写。xib 是 xml nib 文件,于2007年 Leopard (and Xcode 3.0) 版本中
2015-12-24 16:22:12
496
转载 UIView的drawRect: 和 - (void)setNeedsDisplay 的一些理解
在UIView中,1、自定义画图,类似android的onDraw()- (void)drawRect:(CGRect)rect; is invoked automaticall,never call it directly!!2、刷新视图,类似android的invalidate()- (void)setNeedsDisplay;When a view
2015-12-24 15:27:59
409
转载 Objective-C中的属性和实例变量
首先、引用一篇关于@property与@synthesize的老文。交代一下这两个属性的由来、便于下文理解—————————————————————————————————————— 当你定义了一系列的变量时,需要写很多的getter和setter方法,而且它们的形式都是差不多的,,所以Xcode提供了@property和@synthesize属性,@property用在 .
2015-12-22 23:23:06
467
翻译 类别(Categories)和扩展/匿名类别(extensions)及其延伸使用
类别(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。 此外,类别能够保证你的实现类和其他的文件区分开。 1 #import “UIViewController.h”2 @interface UIViewController(CustomView)3 -(void)extMethod;4 @end
2015-12-22 21:40:02
517
转载 OAuth协议授权
其实我们在开发中,经常需要解决获得用户的一些特定的数据,比如:可以选择使用微博登陆,使用QQ登陆等等,然后我们间接的获得用户的头像,昵称等信息。这些都涉及到OAuth授权的内容OAuth授权有这么几个特点: OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准OAuth 的授权不会使第三方触及到用户的帐号信息OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放
2015-12-22 19:15:18
336
转载 如何优化UITableView性能—draw方式
在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。实际上只要针对性
2015-12-22 19:13:37
438
转载 iOS中的事件传递和响应者链条
首先我们来看看iOS中事件的产生和传递过程:1.发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的队列事件中2.UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常会先发送事件给应用程序的主窗口(keyWindow)3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件4.找到合适的视图控件后,就会
2015-12-22 19:09:55
403
转载 掌握设计模式
为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可击;而自己的程序bug重重,改好一个却又引出另一个,按下葫芦浮起瓢,几近崩溃。
2015-12-17 19:28:23
316
转载 Objective-C中的内存管理
在编程语言中是少不了对内存的管理的,内存对于计算机来说是宝贵的资源,所以对使用不到的资源进行回收是很有必要的。OC中使用引用计数和垃圾回收来管理内存,在OC中为每个对象分配一个引用计数器,当对象刚刚被创建时其初始值为1,当有某段代码需要访问一个对象是时,会将该对象的引用计数器加1(通过retain来实现);当访问一个对象结束时,会将该对象的引用计数器减1(通过release来实现);当计数器为0时
2015-12-17 19:27:43
286
转载 UIViewController的生命周期及iOS程序执行顺序
当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序1、 alloc 创建对象,分配空间2、init (initWithNibName) 初始化对象,初始化数据3、loadView 从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
2015-12-16 21:17:36
285
转载 iOS开发UI篇—核心动画(基础动画)
一、简单介绍CAPropertyAnimation的子类属性解析:fromValue:keyPath相应属性的初始值toValue:keyPath相应属性的结束值随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue如果fillMode=kCAFillModeForwards和re
2015-12-16 21:16:29
344
转载 iOS开发UI篇—Quartz2D使用(绘图路径)
一、绘图路径A.简单说明在画线的时候,方法的内部默认创建一个path。它把路径都放到了path里面去。1.创建路径 cgmutablepathref 调用该方法相当于创建了一个路径,这个路径用来保存绘图信息。2.把绘图信息添加到路径里边。以前的方法是点的位置添加到ctx(图形上下文信息)中,ctx 默认会在内部创建一个path用来保存绘图信息。在图
2015-12-16 21:13:21
321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人