下面创建一个名为TouchTracker的应用。通过Xcode的Empty Application模板,创建一个新的iPhone项目并将其命名为TouchTracker。Class Prefix保持与之前项目相同,填入BNR(见图12-2)。
图12-2 创建TouchTracker
首先,TouchTracker需要一个能够描述线条的模型对象。创建一个新的NSObject子类并将其命名为BNRLine。在BNRLine.h中,声明两个CGPoint类型的属性,代码如下:
#import <Foundation/Foundation.h>
@interface BNRLine : NSObject
@property (nonatomic) CGPoint begin;
@property (nonatomic) CGPoint end;
@end
接着,创建一个新的NSObject子类并将其命名为BNRDrawView。在BNRDrawView.h中,将BNRDrawView的父类改为UIView,代码如下:
#import <Foundation/Foundation.h>
@interface BNRDrawView : NSObject
@interface BNRDrawView : UIView
@end
下面创建一个UIViewController子类,用于管理BNRDrawView对象。创建一个新的NSObject子类并将其命名为BNRDrawViewController。在BNRDrawViewController.h中,将BNRDrawViewController的父类改为UIViewController,代码如下:
@interface BNRDrawViewController : NSObject
@interface BNRDrawViewController : UIViewController
在BNRDrawViewController.m中,先导入BNRDrawView.h,然后覆盖loadView方法,创建一个BNRDrawView对象并将其赋给BNRDrawViewController对象的view属性,代码如下:
#import “BNRDrawViewController.h”
#import “BNRDrawView.h”
@implementation BNRDrawViewController
- (void)loadView
{
self.view = [BNRDrawView alloc] initWithFrame:CGRectZero];
}
@end
在BNRAppDelegate.m中,先导入BNRDrawViewController.h,然后创建一个BNRDrawViewController对象,并将新创建的对象设置为UIWindow的rootView- Controller,代码如下:
#import “BNRAppDelegate.h”
#import “BNRDrawViewController.h”
@implementation BNRAppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 在此处加入自定义代码
BNRDrawViewController *dvc = [[BNRDrawViewController alloc] init];
self.window.rootViewController = dvc;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
图12-3是目前TouchTracker的对象图。
图12-3 TouchTracker对象图