![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iphone开发学习和总结
文章平均质量分 88
jinglijun
这个作者很懒,什么都没留下…
展开
-
为UIWebView实现离线浏览
智能手机的流行让移动运营商们大赚了一笔,然而消费者们却不得不面对可怕的数据流量账单。因为在线看部电影可能要上千块通讯费,比起电影院什么的简直太坑爹了。所以为了减少流量开销,离线浏览也就成了很关键的功能,而UIWebView这个让人又爱又恨的玩意弱爆了,居然只在Mac OS X上提供webView:resource:willSendRequest:redirectResponse:fromDat转载 2011-11-14 11:43:40 · 1961 阅读 · 2 评论 -
ios 网络电话开发 (Voip Client For iPhone )
现在网络电话流行,例如skype ,viber ,whatsapp。。。但是你们知道他们怎么做的吗?下面看看我的详细步骤把,哈哈!第一步:在Mac OS桌面新建文件夹,最好不要带中文路径名。新建个目录如:pjsip,解压附件(见链接),pjproject-2.0-alpha2.tar.bz2 (mac os)pjproject-2.0-alpha2.zip(windows)原创 2011-11-14 15:34:51 · 23637 阅读 · 4 评论 -
利用预渲染加速iOS设备的图像显示
最近在做一个UITableView的例子,发现滚动时的性能还不错。但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感。于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此。后来在《Improving Image Drawing Performance on iOS》一文中找到了一些提示:原来在显示图像时,解压和重采样会消耗很多CPU时间;而如果预转载 2011-11-14 11:30:13 · 1233 阅读 · 0 评论 -
如何优化UITableView性能
在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。实际上只要针对性转载 2011-11-14 11:32:33 · 3041 阅读 · 0 评论 -
区域化 NSLocale Class
与CFLocale自由转换.可以通过注册 NSCurrentLocaleDidChangeNotification 通知来获得区域位置改变消息生成– initWithLocaleIdentifier:+ systemLocale// 操作系统的,最初始的区域?+ currentLocale// 当前用户设定区域,肯能是缓存的+ autoupdatingCurrentLoca原创 2011-11-20 20:51:58 · 5632 阅读 · 0 评论 -
UINavigationBar的返回按钮的title改为back
很多时候我们使用navigationController时由于上一个navigationController.title的字符串太长,而导致下一个界面的返回按钮变的很长也很难看,为了美观我们我们可以把返回按钮的title改为back,或者是用自定义的图片。 1.把返回按钮的title改为back:这里要特别说明一下,需要在上一个viewController里面写上以下代码。若是在当转载 2011-11-22 17:38:12 · 8462 阅读 · 2 评论 -
UIApplication ,UIApplicationDelegate 知识总结
在开发过程中我们需要一些全局对象来将程序的各个部分连接起来,这些全局对象中最重要的就是UIApplication对象。但在实际编程中我们并不直接和UIApplication对象打交道,而是和其代理打交道。UIApplication 是iPhone应用程序的开始并且负责初始化并显示UIWindow,并负责加载应用程序的第一个UIView到UIWindow窗体中。 UIAppl转载 2011-11-22 18:09:37 · 1978 阅读 · 0 评论 -
封装自己的静态库和应用
由于iPhone控件的极度匮乏和自定义组件在重用上的限制,在过去的项目中我们积累了大量的“纯代码”组件——因为IB本身的限制,我们无法把这些组件封装为IB组件库(本来我们想通过分发xib文件的方式重用这些组件,但最终发现这根本不可能,苹果的Plug-in编程不支持iPhone)。最终我们想到了静态库。虽然这仍然还是一种比较原始的复用方式,但起码我们可以隐藏组件的源代码。下面, 我们使用iP转载 2011-11-22 22:40:53 · 1729 阅读 · 1 评论 -
开源框架Core Plot的使用
iPhone下的图形框架并不是很多。其中比较知名的就两个s7graphview和Core Plot。巧的是两个都是Google的。前者使用简单,但功能单一,只能画曲线图。后者是开源项目,项目仍在不断更新中,用起来可就复杂多了,而且各个版本会有差异,包括属性、方法,甚至是类名都有改变。关于Core Plot使用的中文网上资料,不是缺乏,而是根本没有。唯一的一篇介绍得比较详细的文章是“Using转载 2011-11-22 22:44:54 · 943 阅读 · 0 评论 -
Core Plot SDK的用法
接前一篇博文《开源框架Core Plot的使用》。如果使用了Core Plot标准Mac安装包进行安装,使用起来有一些变化。其实,如果你注意到安装器的最后一个界面,这里已经有一个如何使用的介绍了:To add the Core Plot SDKs to an iOS Project: 1. Add to your project's .PCH file: #import转载 2011-11-22 22:47:43 · 1187 阅读 · 0 评论 -
ios5 中文键盘高度变高覆盖现有ui问题的解决方案
背景: ios5之前,iphone上的键盘的高度是固定为216.0px高的,中文汉字的选择框是悬浮的,所以不少应用都将此高度来标注键盘的高度(包括米聊也是这么做的)。 可是在ios5中,键盘布局变了,尤其是中文输入时,中文汉字选择框就固定在键盘上方,这样就使得原本与键盘紧密贴合的界面视图被中文汉字选择框给覆盖住了。一方面影响了界面的美观,另一方面,如果被覆盖的部分就是文本输入框转载 2011-11-23 22:38:12 · 1625 阅读 · 0 评论 -
ios 画图总结
0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文1 CGContextMoveToPoint 开始画线2 CGContextAddLineToPoint 画直线4 CGContextAddEllipseInRect 画一椭圆4 CGContextSetLineCap 设置线条终点形状4 CGConte转载 2011-11-25 00:07:27 · 23676 阅读 · 1 评论 -
ARC在工程上的相关设置
在创建工程的时候,我们可以指定工程是否使用ARC技术,如下图选中表示支持ARC,在Beta5以前的版本中,不提供这个选项,非常麻烦。如果是你拿到的工程,那么可以通过设置来改变,如下图所示如果不容易找到,可以在设置的右上角输入ARC做一个过滤。转载 2011-11-25 00:39:00 · 966 阅读 · 0 评论 -
ARC(Automatic Reference Counting )技术概述
此文章由Tom翻译,首发于csdn的blog,任何人都可以转发,但是请保留原始链接和翻译者得名字。多谢!Automatic Reference Counting (ARC) 是一个编译器的技术,利用此技术可以简化Objective-C编程在内存管理方面的工作量。这里我把此技术翻译为自动内存计数器管理技术,下图是使用和不使用此技术的Objective-C代码的区别。转载 2011-11-25 00:34:20 · 1270 阅读 · 0 评论 -
iOS5编程--下载帮助到本机
在安装好Xcode4.2后,请按Command+,或者在菜单Xcode下面选择Preferences...在上面的界面上选择Downloads,选择第二个Documentation,刚安装好的Xcode中并没有我上面图中这么多的内容,选中Check for and install updates automatically,并且点击Check and Install N转载 2011-11-25 00:40:55 · 894 阅读 · 0 评论 -
Objective C内存管理之理解autorelease
这里打算写一些我对Iphone开发内存管理的理解。是建立在读者对Objective C的内存管理已经有一定理解的基础上,内容将包括实践准则,autorelease原理剖析,内存泄露的调试等。如果您对Objective C内存管理不太了解,建议先读一下Vince Yuan的这个教程。在进行IPhone开发时, 内存管理是个相对比较难以理解的东西。Objective-C 使用了一种介于C#转载 2011-11-25 00:43:29 · 4000 阅读 · 0 评论 -
全面解析Objective-C内存管理
前言初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有所帮助,也欢迎大家一起探讨。此文涉及的内存管理是针对于继承于NSObject的Class。一 基本原理Objective-C的内存管理机制原创 2011-11-26 12:14:22 · 1208 阅读 · 0 评论 -
UIScrollView的属性总结
属性作用CGPoint contentOffSet监控目前滚动的位置CGSize contentSize滚动范围的大小UIEdgeInsets contentInset视图在scrollView中的位置iddelegate设置协议BOO原创 2011-11-25 00:03:25 · 5971 阅读 · 0 评论 -
OpenGL 纹理
大概步骤:1.创建纹理对象,并为他指定一个纹理.2.确定纹理如何应用到每个像素上.3.启用纹理贴图4.绘制场景,提供纹理和几何坐标过滤:由于我们提供的纹理图像很少能和最终的屏幕坐标形成对应,大小不同,所以需要设置过滤项目.允许我们进行插值或者匀和,指定放大缩小的函数.glTexParameter*(),使用过滤模式GL_NEAREST那么纹理单位最邻近的将被转载 2011-11-25 00:30:56 · 10884 阅读 · 0 评论 -
iphone 晃动检测方法
AppDelgate.h- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ application.applicationSupportsShakeToEdit = YES;}AppDelgate.m文件原创 2011-11-25 00:15:42 · 3189 阅读 · 0 评论 -
iOS5编程 -- main函数研究
Xcode4.2之前的main函数如下:int main(int argc, char *argv[]){ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil)转载 2011-11-25 00:40:07 · 1124 阅读 · 0 评论 -
iPhone 自定义键盘按键
首先注册消息通知UIKeyboardWillShowNotification : [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)转载 2011-11-09 23:43:55 · 3467 阅读 · 0 评论 -
iphone开发-SQLite数据库使用
我现在要使用SQLite3.0创建一个数据库,然后在数据库中创建一个表格。首先要引入SQLite3.0的lib库。然后包含头文件#import 【1】打开数据库,如果没有,那么创建一个sqlite3* database_;-(BOOL) open{ NSArray *paths = NSSearchPathForDirectoriesInDomain转载 2011-11-10 00:03:41 · 1065 阅读 · 0 评论 -
iphone SQLite3使用总结
SQLite3的确很好用。小巧、速度快。这些天正在研究它,将它移植到ARM系统里面,又有一些收获,这里把我对sqlite3的研究列出来,以备忘记。【其中有摘抄自互联网】SQLite3提供的是一些C函数接口,你可以用这些函数操作数据库。通过使用这些接口,传递一些标准sql语句(以char *类型)给SQLite3函数,SQLite3就会为你操作数据库。SQLite3跟MS的a转载 2011-11-10 00:09:30 · 3627 阅读 · 0 评论 -
iphone 如何获取iphone的硬件版本以及系统信息
获取iphone的系统信息使用[UIDevice currentDevice],信息如下:[[UIDevice currentDevice] systemName]:系统名称,如iPhone OS[[UIDevice currentDevice] systemVersion]:系统版本,如4.2.1[[UIDevice currentDevice] model]:The转载 2011-11-10 00:24:37 · 1506 阅读 · 0 评论 -
iphone 通过获取IMSI判断运营商
IMSI 共有 15 位,其结构如下: MCC+MNC+MSIN ,( MNC+MSIN=NMSI ) MCC : Mobile Country Code ,移动国家码, MCC 的资源由国际电联( ITU )统一分配和管理,唯一识别移动用户所属的国家,共 3 位,中国为 460; MNC:Mobile Network Code ,移动网络码,共 2 位,中国移动 TD 系转载 2011-11-09 23:57:20 · 4046 阅读 · 1 评论 -
ios用 UIImageView实现图片幻灯片
NSArray *myImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"Image1.png"], [UIImage imageNamed:@"Image2.png"], [UIImage imageNamed:@"Image3.png"], [UIImage imageNamed:@"mag转载 2011-11-10 00:16:56 · 6008 阅读 · 0 评论 -
ios选择相册图片并保存
.h中: Obj-c代码 .m中 Obj-c代码 - (IBAction)selectPhoto { NSLog(@"%@",NSStringFromSelector(_cmd)); if ([UIImagePickerController isSourceTypeAvailable:UII转载 2011-11-10 00:29:24 · 5061 阅读 · 0 评论 -
类方法、实例方法、静态方法(重要)
类方法,也称静态方法,指的是用static关键字修饰的方法。此方法属类本身的方法,不属于类的某一个实例(对象)。类方法中不可直接使用实例变量。其调用方式有三种:可直接调用、类名.方法名、对象名.方法名。实例方法指的是不用static关键字修饰的方法。每个实例对象都有自身的实例方法,互相独立,不共享一个。其调用方式只能是对象名.方法名。 用修饰符static声明的方法为静态方法,不用修饰符sta转载 2011-11-09 23:50:21 · 2946 阅读 · 0 评论 -
Core Data 教程(2): 如何预载/导入已有的数据
这是系列教程的第二部分,有助于你加快掌握基本的Core Data内容。在系列教程一中,我们为对象建立了可视化数据模型,运行了快速肮脏测试并勾在一个表视图(table view)中来显示。而在这个教程,我们将讨论如何把已有的数据导入或者预先载入到Core Data里面,这样我们的应用开始时会有一些好的默认数据。在系列教程的最后部分,我们将讨论如何使用NSFetchedResult转载 2011-11-09 23:53:37 · 3070 阅读 · 0 评论 -
Core Data 教程(3): 入门指南
Core Data “Failed Banks” 模式表在iPhone所有数据存储的方法里面,Core Data是重要数据存储的最佳选择。它能降低你应用的内存开销,提升响应速度,并把你从繁琐的代码中解脱出来。然而,学习Core Data之路异常久远。不过这也是这一系列教程的由来 – 让你快速掌握Core Data基础知识。作为该系列教程的第一部分,我们将为我们的对象建立转载 2011-11-09 23:54:22 · 3722 阅读 · 0 评论 -
UIImagePickerController之死因
UIImagePickerController是我们最常用的组件之一,用它可以实现照相,选图片的功能。但是在照像的时候,如果后台开有很多应用,经常会出现crash的情况,是因为照出来的相片像素太高,一般是4M左右,照一张就会有4M内存占用,于是经常会出现memory warning, 然后系统回收内存,就使我们的应用crash。解决方法就是,在UIImagePickerController转载 2011-11-10 00:01:16 · 2308 阅读 · 0 评论 -
iphone 开发开放库-ASIHTTPRequest类库简介和使用说明
官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码,以及获取到相关的资料。使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在Mac OS X系统和iO转载 2011-11-10 00:05:50 · 4806 阅读 · 0 评论 -
iphone Core Telephony
iOS 4.0 的官方 API 裡頭,多了一個叫做 Core Telephony 的 framework;一直以來 Core Telephony 都是 private API,現在開放出來,但是從文件來看,裡頭根本沒有幾行,既沒有告訴你應該怎麼用,也沒有範例,你從 framework 裡頭寥寥四個 class 的 header 中,也搞不清楚,究竟可以把這個東西用在什麼用途上。目前只知道可转载 2011-11-10 00:14:18 · 1308 阅读 · 0 评论 -
iphone UISwipeGestureRecognizer ---手指动作
tap是指轻触手势。类似鼠标操作的点击。从iOS 3.2版本开始支持完善的手势api:tap:轻触long press:在一点上长按pinch:两个指头捏或者放的操作pan:手指的拖动swipe:手指在屏幕上很快的滑动rotation:手指反向操作这为开发者编写手势识别操作,提供了很大的方便,想想之前用android写手势滑动的代码(编写android简单的转载 2011-11-10 00:26:21 · 1694 阅读 · 0 评论 -
IPHONE实景导航开发总结(一)
1. 在摄像头捕获的画面上添加一个自定义的view。 使用iphoneSDK 3.1的新API:UIImagePickerController的新属性cameraOverView来添加一个自定义的view。 C代码 - (IBAction)getCameraPicture: (id)sender { UIImagePickerContr转载 2011-11-10 00:28:08 · 1776 阅读 · 0 评论 -
更改SearchBar的“No Results“标签和”Cancel“按钮
UISearchBar是个很不错的东东,集成了搜索输入框和搜索按钮,使用起来也灰常方便。下面就说说在 没有搜索到任何数据的情况下怎么改变显示结果第一种方法 使用UISearchBar,首先在 .h 声明 UIView *nomatchesView; 然后在.m中加入- (void)viewDidLoad{ nomatchesView = [[UIView allo原创 2011-12-02 00:09:47 · 3166 阅读 · 0 评论 -
UISearchBar的属性和showsScopeBar
昨天研究了UISearchBar,今天遇到了showsScopeBar问题, 还是继续说一下UISearchBar 吧属性作用UIBarStyle barStyle控件的样式id delegate设置控件的委托NSString *text控件上面的显示的文字原创 2011-12-02 18:31:01 · 10596 阅读 · 0 评论 -
UITableView +下拉刷新(Pull-refresh)
给 UITableView 添加“下拉刷新(Pull-refresh)”属性第一次接触下拉刷新是在 Three20 的开源 框架看到的, 还有一些应用,如 人人网,微博 。。。效果例如下面的图片:亲爱的,我还是有些不忍心,不过事情的经过是这样的:Cocoa Touch 的 官方 SDK 里,压根就没实现这个 pull & refresh 的功能。恩,这事真不是乔布斯手下干的。转载 2011-11-13 15:16:56 · 2759 阅读 · 0 评论 -
UITextField 属性讲解
UITextField是我们经常用的之一但是常用的属性都很熟悉,有些不常用的我也总结下,例如下面的: UIImageView * myView = [[ UIImageView alloc]initWithImage:[UIImage imageNamed:@"face.png"]];UIImageView * myView2 = [[ UIImageView a原创 2011-12-09 23:26:53 · 17108 阅读 · 2 评论