iOS
hungboy0
这个作者很懒,什么都没留下…
展开
-
IOS视图坐标
1.标签栏默认高度50、导航栏默认高度45、状态栏默认高度20。 2.IOS中只有一个窗口,所有的View都是在同一个窗口中显示,所以除去窗口状态栏默认高度20,其余可以利用的高度为460. 3.在设计ViewController对应的View上面的控件时候需要考虑:窗口部分还有多少宽高可以被这个View利用。否则就可能造成View上面的控件显示不出来。 例如: 直转载 2012-11-27 13:46:45 · 507 阅读 · 0 评论 -
IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。 设计: GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务。 一个任务可转载 2012-11-05 11:26:15 · 464 阅读 · 0 评论 -
GCD介绍(三): Dispatch Sources
何为Dispatch Sources 简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。 说的貌似有点不清不楚。我们到底讨论哪些事件类型? 下面是GCD 10.6.0版本支持的事件: Mach port send right state changes.Mach p转载 2012-11-05 10:50:54 · 374 阅读 · 0 评论 -
如何修改UINavigationBar的高度
新建一个UINavigationBar的Category,如下: @implementation UINavigationBar (CustomHeight) - (CGSize)sizeThatFits:(CGSize)size { // Change navigation bar height. The height must be even, otherwise there wil原创 2013-01-05 14:41:56 · 1939 阅读 · 0 评论 -
将UITableViewController视图嵌入其它ViewController引起objc_msgSend报错问题
我将自定义的UITableViewController按如下方式嵌入其它ViewController: MessageListViewController * messageView = [[MessageListViewController alloc] init]; messageView.view.frame = CGRectMake(0, 0, self.view.f原创 2013-03-08 14:07:09 · 993 阅读 · 0 评论 -
编译CLCascade提示Undefined symbols for architecture armv7s的解决办法
从Github下载CLCascade进行编译,模拟器运行正常,当选择真机时编译不过,提示Undefined symbols for architecture armv7s错误,查到这篇文章,原因应该是使用的例子依赖的Cascade库设置不正确。 在targets中的Build Settings tab页中找到了Architectures中的三项进行了修改,都加入了armv7s这一项。再重新对io原创 2013-03-28 15:17:57 · 782 阅读 · 0 评论 -
判断NSString是否为数字,以及转换为数字
当NSString为纯数字的时候可以用下面的方法: //判断是否为整形: - (BOOL)isPureInt:(NSString*)string{ NSScanner* scan = [NSScanner scannerWithString:string]; int val; return[scan scanInt:&val] && [sc转载 2013-03-25 15:01:43 · 3071 阅读 · 0 评论 -
Core Data版本更新进行Migration时renaming identifier设置的注意事项
如果在iOS开发中使用了Core Data,当需要对Model进行更新时(如修改属性名称),需要增加Model版本,并使用在NSPersistentStoreCoordinator创建时,使用相应的Migration Option,具体方法可以参考《How to Perform a Lightweight Core Data Migration》一文,本文只想提示其中一个需要注意的地方。原创 2013-04-20 13:58:56 · 1439 阅读 · 0 评论 -
【iOS】iOS6兼容性问题小结
上次说到了iphone5的一些兼容性解决的东西,这次谈一下平时开发时遇到的一些iOS6的兼容性问题。 1、首先是Oritentation问题: 这里可以看这篇翻译:http://blog.csdn.net/sandy_kisa/article/details/8037699 但事实上iOS6对于plist非常敏感,如果仅仅按照上面改可能还是会出现问题,我就碰到了,如果plist中UIS转载 2013-05-24 14:11:58 · 852 阅读 · 0 评论 -
ios6.0与以前版本旋转兼容问题
*UIViewController的shouldAutorotateToInterfaceOrientation方法被deprecated。在ios6里,是使用supportedInterfaceOrientations and shouldAutorotate 2个方法来代替shouldAutorotateToInterfaceOrientation。注意:为了向后兼容iOS 4 and 5,还转载 2013-05-24 14:14:25 · 639 阅读 · 0 评论 -
iOS学习之iOS程序名称及内容国际化(本地化)
iOS学习之iOS程序名称及内容国际化(本地化) 1、iOS程序名称国际化 1.1 新建一个Single View app模版项目,命名为Localization。 1.2 新建后,可以看到工作目录结构文件如下,单击InfoPlist.strings,查看右边的属性,在Localization栏添加语言。 1.3 添加完成后打开对应语言文件,比如English的添加转载 2013-05-29 16:28:43 · 751 阅读 · 0 评论 -
GCD介绍(四): 完结
Dispatch Queue挂起 dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两个还是也可以用于dispatch source。 一个要注意的地方是,dispatch queue的挂起是block粒度的。换句话说,挂起一个queue并不会将当前正转载 2012-11-05 10:58:02 · 417 阅读 · 0 评论 -
iOS开发:小技巧积累
原文地址:http://www.cocoachina.com/newbie/tutorial/2012/1016/4928.html 1、获取全局的Delegate对象,这样我们可以调用这个对象里的方法和变量: [(MyAppDelegate*)[[UIApplication sharedApplication] delegate] MyMethodOrMyVariable];转载 2012-10-23 09:28:49 · 355 阅读 · 0 评论 -
GCD介绍(一): 基本概念和Dispatch Queue
什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。 除了代码的平行执行能力,GC转载 2012-11-05 09:58:26 · 504 阅读 · 0 评论 -
小结CoreData的Migration
当CoreData中的Entity,Property或者Relationship发生改变以后,默认情况下面,在尝试调用CoreData的时候,程序会异常退出,具体是在: [cpp] view plaincopyif (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:转载 2012-10-25 11:15:36 · 945 阅读 · 0 评论 -
开发兼容 iOS retina 的程序,我们需要做什么?
1、 首先明确: iPhone 3G/3GS 屏幕像素分辨率是 320×480 ; iPhone4、iPod Touch4 屏幕像素分辨率 640×960。 2、为了兼容 iOS 4.0 之前的程序也能在 iOS 4 上运行,苹果设计了一个逻辑分辨率单位point ,在 iPhone3 上 1个 Point 相当于 1个pixel ; 而 iPhone4 上1个 point 就相转载 2012-10-25 08:41:39 · 6303 阅读 · 0 评论 -
ios界面动画小结
一.基本方式:使用UIView类的UIViewAnimation扩展 函数说明 + (void)beginAnimations:(NSString *)animationID context:(void *)context; // 开始准备动画+ (void)commitAnimations; // 运行动画// 没有get方法,下面的set在快外调用无效+ (void)setAnimat转载 2012-10-23 10:37:06 · 406 阅读 · 0 评论 -
GCD介绍(二): 多核心的性能
概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)转载 2012-11-05 10:39:13 · 385 阅读 · 0 评论 -
如何避免ViewController打开时Orientation错误
最近在一个iPad项目上要做一个BeginnerGuide,我的设计是将其做在help里,在第一次运行程序时显示此help,否则在需要了解帮助信息时,可以点击help按钮打开此BeginnerGuide。 我的结构是一个基于SplitViewController的Master-Detail结构,在第一次运行时,在Master的ViewWillAppear中通过performSegueWithId原创 2012-11-15 12:11:47 · 1108 阅读 · 0 评论 -
GCD实战一:使用串行队列实现简单的预加载
其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入 代码如下: @implementation DWAppDelegate { dispatch_queue_t _serialQueue; UINavigationController *_navController; }转载 2012-11-05 11:00:08 · 406 阅读 · 0 评论 -
GCD实战2:资源竞争
概述 我将分四步来带大家研究研究程序的并发计算。第一步是基本的串行程序,然后使用GCD把它并行计算化。如果你想顺着步骤来尝试这些程序的话,可以下载源码。注意,别运行imagegcd2.m,这是个反面教材。。 imagegcd.zip (8.4 KB, 33 次) 原始程序 我们的程序只是简单地遍历~/Pictures然后生成缩略图。这个程序是个命令行程序,转载 2012-11-05 11:08:17 · 802 阅读 · 0 评论 -
使用NSOperation和NSOperationQueue启动多线程的教程
原文地址:http://www.cocoachina.com/iphonedev/sdk/2010/1014/2185.html App Store中的很多应用程序非常的笨重,他们有好的界面,但操作性很差。比如说当程序从网上或本地载入数据的时候,界面被冻结了,用户只能等程序完全载入数据之后才能进行操作。 当打开一个应用程序时,iPhone会产生一个包含main方法的线程,所用程序中的界面都转载 2012-10-23 12:39:28 · 427 阅读 · 0 评论 -
如何在iOS中使用Block──How to use Blocks with iOS
Block可以帮助我们组织独立的代码段,并提高复用性和可读性。iOS4在UIKit中引入了该特征。超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识。 Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始。 int num1 = 7; int(^aBlock)(int) = ^)int num2)转载 2012-11-05 14:26:05 · 441 阅读 · 0 评论 -
解决UIPopoverController弹出慢的问题
我有一个UIPopoverController,其中有一个UIDatePicker,在设备上弹出需要1秒以上时间,在StackOver上找到一个与我一样的问题,解决方法如下: 将 dateViewController.view = datePicker; 改为 [dateViewController.view addSubview:datePicker]; 参考地址原创 2013-06-03 19:01:00 · 1037 阅读 · 0 评论