本文我们将从实例想大家介绍iOS应用开发如何新建UIView的子类。包括自定义绘图函数、将新视图绑定到主窗口等内容。
大致步骤
1) 新建一个UIView的子类(@interface HypnosisView : UIView)
2) 自定义绘图函数:(void) drawRect:(CGRect)rect
◆确定绘图范围:CGRect bounds=[self bounds]
◆获得CGContext, CGContextRef context=UIGraphicsGetCurrentContext();
◆进行绘图操作
3) 将新视图绑定到主窗口
◆在HypnosisterAppDelegate中添加一个成员变量HypnosisView *view;
◆确定绘图范围
◆在didFinishLaunchingWithOptions中增加子视图:[_window addSubview:view];
◆进行显示 [_window makeKeyAndVisible];
待确定事项:
1) CGContextStrokePath的功能
2) makeKeyAndVisible消息的功能
关键代码如下:
Java代码
1) 绑定处理:
- -(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions
- {
- NSLog(@"didFinishLaunchingWithOptions.");
- CGRectdrawingArea=[_windowbounds];
- view=[[HypnosisViewalloc]initWithFrame:drawingArea];
- [viewsetBackgroundColor:[UIColoryellowColor]];
- [_windowaddSubview:view];
- //Overridepointforcustomizationafterapplicationlaunch.
- [_windowmakeKeyAndVisible];
- returnYES;
- }
2) 绘图处理:
- -(void)drawRect:(CGRect)rect
- {
- NSLog(@"EnteringthedrawingfunctionofHyponsisView.");
- //Getthedrawingrectangle
- CGRectbounds=[selfbounds];
- //Calculatethereferences
- CGPointcenter;
- center.x=bounds.origin.x+bounds.size.width/2.0;
- center.y=bounds.origin.y+bounds.size.height/2.0;
- floatradius=hypot(bounds.size.width,bounds.size.height)/2.0;
- //PrepareDrawing
- CGContextRefcontext=UIGraphicsGetCurrentContext();
- CGContextSetLineWidth(context,10);
- [[UIColorgreenColor]setStroke];
- //Drawingthecircles
- for(floatr=radius;r>0;rr=r-25)
- {
- CGContextAddArc(context,center.x,center.y,r,0.0,M_PI*2.0,YES);
- CGContextStrokePath(context);
- }
- }
运行效果:
转载请说明出处
知优网 » iOS应用开发教程:新建UIView的子类(ios ui开发)
知优网 » iOS应用开发教程:新建UIView的子类(ios ui开发)