Category: 计算机技术

编写最简单的iOS图形应用

这个内容和编写最简单的Mac图形应用是类似的,本文针对iOS。之前写iOS视图代码,基本是手工代码实现的。实际上IB是个很好的工具。以下演示怎样通过IB编写最简单的iOS应用。 应用实现的效果: 点击提交,会打印日志: 2011-05-31 14:38:46.536 iPhoneDemo[16420:207] User name: zhangsan    发送文章为PDF   

星期二 五月 31st, 2011 in 计算机技术 | No Comments »

编写最简单的Mac图形应用

实现了一个最简单的应用。目的是理解Mac/iOS的Interface Builder(IB)使用机制。 应用只有一个窗口,窗口中有一个文本框,一个按钮。在文本框中输入文字,点击提交,控制台窗口中会打印输入的文字。 日志引用编写最简单的iOS图形应用    发送文章为PDF   

星期二 五月 31st, 2011 in 计算机技术 | No Comments »

ObjC使用Category

Category是ObjC语言中的扩展机制之一,另一个为Protocol。 Category提供一种为某个类添加方法而又不必编写子类的途径。 假设有这样一个类CarInfo: #import <Foundation/Foundation.h> @interface CarInfo : NSObject { } -(void)sayCarBrand; @end @implementation CarInfo -(void) sayCarBrand{     NSLog(@"Car brand: Golf"); } @end      发送文章为PDF   

星期五 五月 13th, 2011 in 计算机技术 | 1 Comment »

如何判断touch到子视图或离开视图

这是在ios开发中常见的功能。即,touch移动事件,是移动到当前视图的子视图中,还是移动到当前视图以外了。 办法是,继承UIView,覆盖touchesMoved方法: – (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{     UITouch *touch=[touches anyObject];     if (![self pointInside:[touch locationInView:self] withEvent:nil]) {         NSLog(@"touches moved outside the view");     }else {         UIView *hitView=[self hitTest:[[touches anyObject] locationInView:self] withEvent:nil];         if (hitView==self) {             NSLog(@"touches moved in the view");         }else{             NSLog(@"touches moved in the subview");         }     [...]

星期四 五月 12th, 2011 in 计算机技术 | No Comments »

xcode设置改变公司名称

通过xcode编写代码,代码的头部会有类似下面的内容: 在xcode 3.2.x之前,需要命令行设置变量。比如《objective-c基础教程》第七章中提到的方式。 之后,可以通过xcode的配置项操作了。操作步骤见下面图示:    发送文章为PDF   

星期三 五月 11th, 2011 in 计算机技术 | 1 Comment »

objc的类加载

在java语言里,可以通过如下代码来实现加载类的时候执行对类的操作,一般叫:类初始块,或者,类加载块。比如: public class MyClass{     static{          ……      } } 在objc语言里,对应的机制是,类方法,load和initialize。 比如: #import "Constants.h" @implementation Constants + (void)initialize{     NSLog(@"init constants >>>>>>>>>>"); } + (void)load{     NSLog(@"load constants >>>>>>>>>>"); } @end 两个方法有一些不同。    发送文章为PDF   

星期四 四月 28th, 2011 in 计算机技术 | No Comments »

objc文件内部的常量

在在objc项目中使用常量的最佳实践中的常量,是指可用于全局的常量。如果只是在文件内部使用,不希望之外的地方能访问到,就需要: #import "BasicDemosViewController.h" #import "Constants.h" NSString * const kMyURL=@"http://marshal.easymorse.com"; @implementation BasicDemosViewController // Implement loadView to create a view hierarchy programmatically, without using a nib. – (void)loadView {     NSLog(@"load view: %@, %@",kInitURL,kMyURL); }    发送文章为PDF   

星期四 四月 28th, 2011 in 计算机技术 | No Comments »

在objc项目中使用常量的最佳实践

之前,在在objc项目中使用常量中,使用c的预处理#define来设置常量。比如,可以做个头文件,然后在需要的类文件中import,使用常量。 但这不是最佳实践。这样做可能是最好的方式,首先在比如叫Constants.h的头文件中: #import <Foundation/Foundation.h> extern NSString * const kInitURL; @interface Constants : NSObject { } @end 这里使用到extern c关键字,表示这个变量已经声明,只是引用。const关键字表示变量是常量,不可修改。 在objc的约定里,常量也是大小写混排的驼峰命名规则,首字母小写,另外,第一个字母是k。 然后,在Constants.m文件中: #import "Constants.h" NSString * const kInitURL = @"http://marshal.easymorse.com"; @implementation Constants @end   在这里给常量kInitURL赋值。 如何使用常量?只需在所需的m文件引入Constants头文件,下面是使用示例: #import "BasicDemosViewController.h" #import "Constants.h" @implementation BasicDemosViewController // Implement loadView to create a view hierarchy programmatically, without using a nib. – (void)loadView [...]

星期四 四月 28th, 2011 in 计算机技术 | No Comments »

svn命令取消修改,还原版本

svn可以还原到以前版本,一般来说有两种情况: 修改,但尚未提交,还原是取消当前修改,还原到主干的上一个版本 修改并提交了,需要还原到之前的指定版本 这里介绍的是第一种情况。其实在eclipse和windows环境下都有图形工具可以很容易的实现。以至于我都记不住命令。 要感谢xcode糟糕的svn支持,帮助我们不在命令行方面能力退化。 我在xcode环境下有关svn的一切操作都使用命令行。 svn revert –recursive . 该命令可在当前目录下,递归还原版本到主干的最后一个版本。    发送文章为PDF   

星期五 四月 22nd, 2011 in 计算机技术 | No Comments »

实现类似Android Grid效果的列表视图

ios里的UITableView,功能是很强大的。但是没有Android类似Grid的效果。比如类似解决ListView滚动卡的问题。因为UITableView的每行只支持显示一个视图。如果细粒度的比如类似gallery的效果,就需要自己解决了。 最近写的一个类似效果的原型: 主要解决了: 如何生成grid的样式 图片的阴影效果    发送文章为PDF   

星期四 四月 21st, 2011 in 计算机技术 | No Comments »