摘要:
Objective-C 实现类中Continuation Category(附加目录)是实现文件.m的一个特殊区域,我们可以在这里定义私有属性和方法。代码在@interface 和 @implementation 指令之间。Apple 称实现文件的附加目录(Continuation Category)为类的扩展(class extension)。类的扩展像匿名目录(anonymous category)一样,我们可以在这一区域定义方法(method)、属性(property)和实例变量(instance variable)。当然,方法的具体实现需要在@implementation 代码块中编. 阅读全文
摘要:
UIScrollView滚动视图结合UIImageView图像视图实现图像缩放效果,包括监测手势识别器(Gesture Recognizer)等等。本范例项目,需要使用前面《一步一步学习iOS 5 编程(第三版) 》教程中的很多知识,包括导航控制器、表视图、联线(Segue)、UIScrollView和UIImageView等等。开发环境:Xcode 4.5 + iOS 6 iPhone 模拟器示例App – PhotoBrowser 应用程序 – 滚动图像和手势识别功能–最终运行界面如下所示:在示例代码中,我们手动编写代码,添加了2个触摸手势识别器的支持。// 添加手势识别器 - 一个手指. 阅读全文
摘要:
1. 播放在App中的音频时,使用AVAudioPlayer;播放音乐库中的文件时,使用MPMusicPlayerController;2. 虽然MPMusicPlayerController 能够播放本地音频文件,但其主要用途还是集成现有的音乐库多媒体文件; 阅读全文
摘要:
虽然Media Player 框架也可实现音乐播放功能,具体参考如下文章:iOS 6编程-使用MPMoviePlayerController类实现视频播放器但是Apple推荐使用 AV Foundation框架来实现音频播放功能。另外,AV Foundation框架还提供了录音功能,可以在App中之间录制声音文件。AVAudioRecorder — 录音功能;AVAudioPlayer — 播放音频功能;我们基于AV Foundation框架,实现了一个简单的音乐播放器MusicPlayer,App运行界面如下所示:示例App的功能是,播放在项目本地的多个 MP3 音频文件,示例App中添加. 阅读全文
摘要:
在iOS 模拟器中测试音乐播放功能,使用多媒体选择器 MPMediaPickerController时,出现如下异常信息:reason: Unable to load iPodUI.framework模拟器无法访问设备的iPod 库,也就是无法访问设备的音乐库。要测试这一功能,必须使用实际设备,代码可以改进一下,捕获这一异常信息。- (IBAction)chooseMusic:(id)sender {MPMediaPickerController *musicPicker;musicPicker = [[MPMediaPickerController alloc] initWithMedia. 阅读全文
摘要:
MPMoviePlayerController类可以播放多媒体文件,视频文件可以位于App文件系统中,或者远程URL处。下面是基于MPMoviePlayerController类实现的一个视频播放器App,项目名称 VideoPlayer。开发环境:Xcode 4.5 + iOS 6 iPhone 模拟器视频播放器VideoPlayer 运行界面:首先在项目中需要引入Media Player 框架,并在相应的类中添加接口文件的引用:#import <MediaPlayer/MediaPlayer.h>本示例项目全部源代码如下,代码中详细的注释。VideoPlayerViewCont 阅读全文
摘要:
具体异常信息:SimpleTable3[29418:11303] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the “SimpleTableViewController” nib but the view outlet was not set.’libc++abi.dylib: terminate called throwing an exc. 阅读全文
摘要:
写了一个简单的iOS App,演示UIScrollView滚动视图和UIPageControl分页控件的简单应用。本App功能是:在每一页显示不同背景演示的页面。UIScrollView滚动视图和UIPageControl分页控件进行关联,滚动到新的页面时,分页控件也会同步切换到新的页面,反之也如此。示例App 最终运行界面如下:开发工具:Xcode 4.5 + iOS 6 模拟器创建项目ColorScroll,类前缀也设置为ColorScroll,如下图所示。下面是本示例项目的完整源代码,代码中有比较完整的注释。ColorScrollViewController.h 头文件代码:#impo. 阅读全文
摘要:
相关文章:iOS 6编程(14)-自动布局(Auto Layout)简介iOS 6编程(15)-创建自动布局(Auto Layout)简单应用iOS 6编程(16)-Interface Builder自动布局功能前面我们简单学习了自动布局的一些基础知识和Interface Builder中自动布局的一些功能。这里,我们进行通过一个示例App演示使用Interface Builder创建自动布局的约束,同时也演示了约束的优先级。进一步在布局画布上,添加了按钮和UIImageView图像视图,通过iOS 6 引入的自动布局和约束,可以方便灵活设计出纵向、横向模式都适应的应用程序。针对本范例App. 阅读全文
摘要:
Interface Builder自动布局功能为了帮助基于约束来实现自动布局,Interface Builder增加了大量的功能,下面将阐述这些新功能。自动化约束从前一个范例中,我们知道在视图布局设计过程中,Interface Builder自动给子视图设置了约束。另外,需要知道Interface Builder自动添加的约束和开发人员手工添加的约束是有区别的。手动添加的约束认为是用户约束(user constraints)。Interface Builder 自动添加的约束首先需要调整为user constraints,然后才能删除。user constaints也可以配置为标准间距(st. 阅读全文
摘要:
相关文章:iOS 6编程(14)-自动布局(Auto Layout)简介创建自动布局(Auto Layout)简单应用在深入研究Interface Builder的自动布局特性之前,我们先创建一个简单的App,演示自动布局的基本概念。使用Xcode的Single View Application模板创建一个项目,项目名称为AutoLayout,类前缀也设置为AutoLayout,选择Storyboard和Automatic Reference Counting选项。在Interface Builder中启动和禁用自动布局功能默认情况下,针对Storyboard和单独的NIB文件都会启用自动布. 阅读全文
摘要:
iOS 6 在应用程序用户界面开发中,引入了自动布局(Auto Layout)概念。自动布局使用约束(Constraint)在用户界面描述各类视图的位置、行为和关系。在Xcode 4.5中,我们可以使用Interface Builder,或者可视化格式语言(Visual Format Language),或者标准的SDK API调用(NSLayoutConstraint类)等等三种方式来创建约束(Constraint)。Auto Layout用这些Constraints 来对所有的视图进行一些计算,设置视图的位置和尺寸。不再需要设置视图的frame属性,也就是完全基于针对视图或元素所设置的C. 阅读全文
摘要:
删除数据记录当从UITableView中删除一行记录时,将调用commitEditingStyle方法。- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{if (editingStyle == UITableViewCellEditingStyleDelete) {// Get the object to delete from the arrayNo. 阅读全文
摘要:
查询结果集结果集的查询,需要用到SQL Statement对象。Statement对象表示一条SQL语句,可以理解为prepared statement或者compiled statement。一般使用sqlite3_prepare_v2() 函数创建Statement对象。头文件中定义了2个成员变量:sqlite3 *noteDB;NSString *databasePath;示例代码如下所示:- (void) initializeDataToDisplay{self.noteArray = [[NSMutableArray alloc] init];const char *dbpath . 阅读全文
摘要:
向表中插入记录向数据表Notebook中添加一条新的记事日志,成功插入记录后,会显示一个提醒视图。- (IBAction)addNote:(id)sender {char *errMsg;const char *dbpath = [databasePath UTF8String];if(sqlite3_open(dbpath, ¬eDB) == SQLITE_OK){NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO Notebook(Whattime, Address, What, Who, N 阅读全文
摘要:
在使用SQLite API函数如有疑问,可以参考官方函数文档:http://www.sqlite.org/c3ref/funclist.html操作SQLite数据库SQLite数据库是文件数据库,是保存在文件系统中的。因此需要知道文件保存到哪里,下面的代码中,我们将Notebook.sqlite数据库存放在Documents目录下。其中涉及到SQLite数据库的创建、打开、创建数据表和关闭数据库等等操作。NSString *docsDir;NSArray *dirPaths;// 获取 documents 目录dirPaths = NSSearchPathForDirectoriesInD. 阅读全文
摘要:
将照片库和App集成,可直接访问存储在iPhone、iPad 中的任何图像或拍摄新照片,并在App 中使用。1. 为了使用 UIImagePickerController,需要将类声明为遵守2个协议:UIImagePickerControllerDelegate和UINavigationControllerDelegate。@interface NoteViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate>2. 显示图像选择器下面是点击设置按 阅读全文
摘要:
示例代码如下所示,调用NSMutableArray 对象的addObject方法,但是 count 方法总是返回 0,什么原因呢?for (MyObject *obj in self.Array){[self.noteArray addObject:obj];NSLog(@"Num items: %d", [self.noteArray count]);}这里,self.noteArray 是NSMutableArray 对象,[self.noteArray count] 总是输出0。出现上述问题的原因是:self.noteArray 没有初始化,仍然为nil,所以 cou 阅读全文
摘要:
Automatic Property Synthesize 特性这个指的是在Xcode 4.5 编写代码时,在.h 头文件中定义了 @property 属性,之前还必须要在 .m 文件中编写 @synthesize 编译指令(自动生成getter、setter方法)。现在这个不需要做了。当然如果你乐意写@synthesize 代码,Xcode 也支持。 阅读全文
摘要:
SQLite是一种轻量级嵌入式数据库,支持大部分标准SQL语法,非常适合做小型应用和作为临时数据存储工具。SQLite Manager – Firefox插件,完全能达到管理SQLite数据库的目的,类似于SQL Server的企业管理器,包括创建数据库,创建表,管理索引等,是一个很好的SQLite前端管理工具。SQLite Manager – Firefox 插件,点击Add to Firefox 按钮,就可以安装了。安装过程中,需要重启Firefox。安装完成之后,在Firefox的Tools 菜单下,可以看到SQLite Manager 菜单项。 阅读全文