![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iphone之恋
chengyingzhilian
这个作者很懒,什么都没留下…
展开
-
关于键盘弹出时遮盖页面显示的解决方案
在看asihttprequest代码时候,无意发现了关于键盘弹出时遮盖页面显示的解决方案,解决方法如下:在viewload方法里面注册监听键盘弹出和hide [[selfview] setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];[[NSNotific原创 2012-11-19 10:40:07 · 2056 阅读 · 0 评论 -
respondsToSelector的相关使用
-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例-(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例-(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个selector的对象里传递)+(BOOL) instancesRespo转载 2012-08-31 17:51:50 · 47087 阅读 · 2 评论 -
ios状态栏操作
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; //显示[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; //隐藏让状态栏显示网络等待标志状态栏是可以通过UIApplication类提供的一原创 2012-09-07 09:01:34 · 33310 阅读 · 2 评论 -
UIView层次管理(sendSubviewToBack,bringSubviewToFront)
目的:使segment上每一个Item的title可以换行显示。方法:在segment control上蒙一层label,控制label,让label的text换行显示。遇到的困难:无法将label放置在segment上。分析原因:一开始我就犯了一个错,那就是把mySegment作为self.view的子层,把labelA作为mySegment的子层,然后管理labelA和转载 2012-09-05 15:40:24 · 43584 阅读 · 0 评论 -
CALayer 详解
首先要说的是CALayers 是屏幕上的一个具有可见内容的矩形区域,每个UIView都有一个根CALayer,其所有的绘制(视觉效果)都是在这个layer上进行的。(译者注:为验证这点,我写下了如下代码:12345678910 UILabel* lable = [[UILabel alloc]initWithFra转载 2012-08-23 10:40:12 · 1344 阅读 · 0 评论 -
UIView详解
UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为IOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容,并且响应该区域内发生的触摸事件UIView的功能 1.管理矩形区域里的内容2.处理矩形区域中的事件3.子视图的管理 4.还能实现动画 UIView的子类也具有这些功能下图就是视图的内层次转载 2012-08-22 09:34:43 · 35586 阅读 · 3 评论 -
CGGeometry.h详解
这些是在CGGeometry.h里的CGPoint、CGSize、CGRect、CGRectEdge实际上都是结构体struct CGPoint { CGFloat x; CGFloat y;};typedef struct CGPoint CGPoint; struct CGSize { CGFloat转载 2012-08-22 09:23:22 · 5196 阅读 · 1 评论 -
UIControl -控件的基类详解
UIKit提供了一组控件:UISwitch开关、UIButton按钮、UISegmentedControl分段控件、UISlider滑块、UITextField文本字段控件、UIPageControl分页控件。控件是对UIView派生类的实用增强及补充,并可以直接附着于导航栏、表格单元,甚至更大的对象。这些控件的基类均是UIControl,而UIContro翻译 2012-08-22 09:15:54 · 2409 阅读 · 0 评论 -
ios多线程开发——nsoperation详解
多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说。为了能让初级开发工程师也能使用多线程,同时还要简化复杂性。各种编程工具提供了各自的办法。对于iOS来说,建议在尽可能的情况下避免直接操作线程,使用比如NSOperationQueue这样的机制。可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中转载 2012-08-20 15:00:20 · 2893 阅读 · 0 评论 -
iOS线程之——NSCondition
多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。一、线程创建与启动线程创建主要有三种方式:- (id)init; // designated initializer原创 2012-08-21 09:51:10 · 3476 阅读 · 0 评论 -
Mac 动态链接库的使用
看帖无数,综合各帖,加上自己研究终于出来了。1.构建需要构建的 .dylib工程添加方法 Person.h @interface Person : NSObject {}float converount(float amt ,float rate); Person.m原创 2012-08-21 11:06:54 · 4428 阅读 · 0 评论 -
iPhone开发之ModalViewController视图切换
有时候我们需要从表格视图中选中一个项目,切换到编辑视图,编辑完后保存。如图所示,我们要从视图1切换到视图2,视图1控制器的名称为ViewController,视图2控制器的名称为BlogEditViewController// ViewController.h #import @class BlogEditViewController; @interfac转载 2012-08-16 19:23:25 · 771 阅读 · 0 评论 -
NSPredicate 详解
一般来说这种情况还是蛮多的,比如你从文件中读入了一个array1,然后想把程序中的一个array2中符合array1中内容的元素过滤出来。正 常傻瓜一点就是两个for循环,一个一个进行比较,这样效率不高,而且代码也不好看。其实一个循环或者无需循环就可以搞定了,那就需要用搞 NSPredicate这个类了~膜拜此类~1)例子一,一个循环NSArray *a转载 2012-09-08 11:30:33 · 2870 阅读 · 1 评论 -
iOS中注册功能的体验探究
登录功能是我在湖畔做的第一个需求。当时PD给我的草图和下图类似:(图片来自知乎iOS客户端登录界面) 不过需求中要求用户名或者密码错误时,输入框要抖动(类似Mac登录密码错误的抖动效果)。如果实现上图的UI布局,那么输入框抖动是上下单元格独立抖动还是整体抖动?独立抖动:会出现上下单元格边界不齐的断裂效果,破坏美感。整体抖动转载 2012-09-08 11:32:19 · 6823 阅读 · 2 评论 -
设置 UILabel 和 UITextField 的 Padding 或 Insets (理解UIEdgeInsets)
iOS 的控件,只看到 UIButton 可以设置 Padding/Insets,即按钮上文字或图片与按钮边界的间隙,对与 CSS 来说叫做 Padding,在 iOS 中叫做 Insets,UIButton 设置 Insets 相应的属性如下:Configuring Edge Insets contentEdgeInsets property tit转载 2012-11-19 10:37:05 · 4544 阅读 · 0 评论 -
UIScrollView 原理详解
ScrollView UIScrollView UIScrollView为了显示多于一个屏幕的内容或者超过你能放在内存中的内容。 Scroll View为你处理缩小放大手势,UIScrollView实现了这些手势,并且替你处理对于它们的探测和回应。其中需要注意的子类是UITableView以及UITextView(转载 2012-11-15 15:08:38 · 1088 阅读 · 0 评论 -
NSTimer详解
总结一下,我对NSTimer类的学习和理解。不多说了,先上效果图界面元素很简单,两个UIButton 开始和暂停,20表示起始倒计时。最终的效果是,按开始按钮的时候,倒计时开始运行,按暂停按钮的时候,计时器,停止倒计时。当倒计时为0的时候,弹出一个对话框,提示时间已到。业务需求很简单,但是,在我的实现中,却出现了,一些小错误。 主要是暂停键不能点击多原创 2012-11-15 10:21:04 · 2745 阅读 · 0 评论 -
Run loops的使用
Run loops是线程的基础架构部分。一个run loop就是一个事件处理循环,用来不停的调配工作以及处理输入事件。使用run loop的目的是使你的线程在有工作的时候工作,没有的时候休眠。Run loop的管理并不完全是自动的。你仍必须设计你的线程代码以在适当的时候启动run loop并正确响应输入事件。Cocoa和CoreFundation都提供了run loop对象方便配置和管理线翻译 2012-11-15 10:21:28 · 1487 阅读 · 0 评论 -
IOS定位代码
一行代码显示你的位置iOS中的MapKit集成了定位的功能,使用一行代码就可以在google地图上展示出自己当前的位置,代码如下:-(IBAction) showLocation:(id) sender { if ([[btnShowLocation titleForState:UIControlStateNormal] isEqualToString:@转载 2012-11-15 14:01:35 · 3923 阅读 · 0 评论 -
XCode快捷键大全
1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠CMD +转载 2012-09-20 09:37:19 · 1225 阅读 · 0 评论 -
performSelector: withObject: 详细教程
Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。 首先介绍两个方法 SEL和@selector根据AppleObjective-C Runtime Reference官方文档这个传递消息的函数就是 id o转载 2012-09-13 14:10:17 · 1220 阅读 · 0 评论 -
IOS正则表达式的用法
在 iOS 开发中要用正则表达式的话,至少有三种选择:1. 系统自带的 NSString 和 NSMutableString 相关的方法2. RegexKit Framework - http://regexkit.sourceforge.net3. RegexKitLite - http://regexkit.sourceforge.net/RegexKitLite/N转载 2012-09-11 16:47:06 · 9361 阅读 · 0 评论 -
iPhone / iPod Touch 文件传输解决方案 – 开源框架:Cocoa Web Resource Project
到目前为止,也就是iPhone SDK 2.2 ,苹果仍然没有为开发者提供一个文件传输的解决方案。如果一个应用需要为用户提供往iPhone上传文件的功能,大抵会采用下面几种方法之一:通过一个链接从网上下载。提供一个客户端,通过自己的协议上传。支持FTP传输协议。在iPhone上启动一个http服务,通过浏览器上传。比上一个更进一步,在http上支持WebDAV,通过改协翻译 2012-09-11 17:17:22 · 8168 阅读 · 7 评论 -
setneedsdisplay setneeddisplayinrect的区别
大家应该都比较清楚如果想要刷新一个UIView的话,调用它的setNeedsDisplay即可。问题是,当你调用了一个UIView的setNeedsDisplay之后,该UIView何时才得到刷新?经过调研发现,应该是在一个runloop的最后阶段刷新。什么是一个runloop呢?个人认为可以简单的理解为了一个事件的处理过程。例如用户点击屏幕是两个runloop。转载 2012-09-08 17:36:06 · 3796 阅读 · 0 评论 -
iPhone开发之CoreData(实战篇)
我们从“Empty Application”一个空项目开始,命名为TestCoreData,并勾选Use Core Data,在AppDelegate中Xcode已经为我们生成了CoreData基本代码。建模打开xcdatamodeld文件,点击Add Entity按钮添加实体,并命名这个实体为Student,如下图。点击Add Attribute按钮(也可以点转载 2012-08-16 19:21:07 · 1918 阅读 · 0 评论 -
iPhone开发之CoreData(基础篇)
基本学会了SQLite在iPhone中的使用,这时候我就在找有没有SQLite的封装类,这样可以避免自己重复地SQLite的封装代码,Google一下,找到几个objc-sqlite、FMDB等,还有一些其它不知名的封装库,官方也提供了CoreData框架来提供完整的对象持久化存储方案,还是有必要要学习一下。基本概念在CoreData有一些概念刚学习的时候不是很容易理解,还是要转载 2012-08-16 19:20:26 · 856 阅读 · 0 评论 -
iPhone开发之SQLite
现在网站开发和软件开发,数据库的支持是少不了的;在iPhone开发中,作为数据持久化的解决方案中,SQLite是不错的选择,它既轻量占用资源少,又可以方便嵌入到程序中,在一些嵌入式设备中有着广泛使用。SQLite提供了命令行工具sqlite3,创建创建库。cjdx@~/Desktop$ sqlite3 school.sqlite3SQLite version 3.6.12E转载 2012-08-16 18:21:51 · 1205 阅读 · 0 评论 -
SEL类型整理
Objective-C在编译的时候,会根据方法的名字(包括参数序列),生成一个用 来区分这个方法的唯一的一个ID,这个ID就是SEL类型的。我们需要注意的是,只要方法的名字(包括参数序列)相同,那么它们的ID都是相同的。就是 说,不管是超类还是子类,不管是有没有超类和子类的关系,只要名字相同那么ID就是一样的。我们可以方便的通过方法的名字,获取到方法的ID也就是我们所说的SEL,反之亦然。转载 2012-08-16 17:16:17 · 847 阅读 · 0 评论 -
UIWindow & UIWindowLevel详解
一、UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用: 1、作为容器,包含app所要显示的所有视图 2、传递触摸消息到程序中view和其他对象 3、与UIViewController协同工作,方便完成设备方向旋转的支持二、通常我们转载 2012-08-16 10:18:41 · 25788 阅读 · 6 评论 -
UIImageViewController的使用
引用UIImagePickerController 需用到两个代理用UIImagePickerController选择、显示图片或视频,主要注意UIImagePickerController几个属性的设置一:UI 显示样式,显示的格式确定1:sourceType@property(nonatomic) UIImagePickerControllerSourceType sou转载 2012-08-15 15:26:19 · 1871 阅读 · 0 评论 -
Localizable.strings IOS 国际化支持
一、获取系统所支持的国际化信息在国际化之前,你可以在iphone中的”设置->通用->多语言环境->语言”中来查看你的iphone支持哪些语言,当然也可以写一段代码测试一下你的iphone都支持哪些语言.测试代码如下:NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *languag原创 2012-08-15 09:55:45 · 5833 阅读 · 0 评论 -
UITouch详解
1. UITouch 的主要方法:C代码 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NS转载 2012-08-14 18:24:18 · 4221 阅读 · 0 评论 -
ios的AutoresizingMask
在iOS应用的开发过程中,经常会使用,setFrame的方式对UIView进行布局,经常会使用计算的方式,如self.view.bounds.size.height - 20-44- Heignt等来计算Y的相对位置我们知道上边的数字 20是status bar的高度,44是navigationBar的高度.这样的写法没有什么错误,但是不利于代码的复用,比如一个ViewControll原创 2012-08-14 17:26:54 · 3831 阅读 · 0 评论 -
propery 的参数的区别
一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块 内存的时候会引起程序crash掉。2.原创 2012-08-14 15:31:36 · 1209 阅读 · 0 评论 -
如何在alertiew里面添加进度条
今天这个问题是,在一个iPhone程序中,我要在后台做大量的数据处理,希望在界面上显示一个进度条(Progress Bar)使得用户了解处理进度。这个进度条应该是在一个模态的窗口中,使界面上其他控件无法被操作。怎么用最简单的方法来实现这个功能?UIAlertView是一个现成的模态窗口,如果能把进度条嵌入到它里面就好了。 以下内容适用于iOS 2.0+。我们知道,如果要显示转载 2012-08-14 10:01:55 · 614 阅读 · 0 评论 -
xcode 快捷键
1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠CMD +转载 2012-08-11 22:51:16 · 833 阅读 · 0 评论 -
UINavigationController使用详解
废话少说回到正题,UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的APP中(如qq,系统相册等)都有用到。说是使用详解,其实我只会介绍几个自认为比较重要或者容易放错的地方进行讲解,下面让我们挨个探探究竟: 首先上一张图(来自苹果官方文档):转载 2012-08-16 10:19:42 · 1237 阅读 · 0 评论 -
iOS常用控件尺寸大集合
元素控件尺寸(pts)Window(含状态栏)320 x 480Status Bar的高度20Navigation Bar的高度44含Prompt的Navigation Bar的高度74Navigation Bar的图标20×20(透明的png)T转载 2012-08-15 21:54:58 · 959 阅读 · 0 评论 -
iPhone开发之TabBarController
跟网页开发一样,在巴掌大的地方要显示更多的内容就要用到类似选项卡的功能,在iPhone中也有这样的视图控制器这个类就是UITabBarController。如上图看到的,在屏幕的底部可以看到Tab Bar的样子,顶部用的是Navigation,很多情况都是TabBar和Navigation配合使用。就在iPhone开发之NavigationController的基础上来继续今天的T转载 2012-08-16 19:15:05 · 3020 阅读 · 0 评论 -
TableViewCell组件的自定义
视图需要我们自己去定义样式时用到了TableViewCell组件,效果如下 首先创建View Based App工程,在.xib文件中拖入一个Table View,前面我们说到了,这里就不再重复,注意连接协议和两个必须方法的实现。完成.h中代码 C代码 #import @interface TableViewCellViewController :转载 2012-08-16 14:47:20 · 1511 阅读 · 0 评论