自己定义UIView以实现自绘
有时候我们须要自绘uiview以实现自己的需求,比方依据坐标点绘制出连续的曲线(股票走势图),就须要自绘uiview了。
原理:继承uiview类(customView),并实现custom view的drawRect即可。
首先看一下效果图:
代码例如以下:
// .h
#import <UIKit/UIKit.h>
@interface CustomView :
UIView
@end
//.m
#import "CustomView.h"
@implementation CustomView
-(id)initWithFrame:(CGRect)frame{
//重写initWithFrame时,不要忘了以下一句
self = [superinitWithFrame:frame];
if (self) {
self.backgroundColor = [UIColorwhiteColor];
}
return
self;
}
//重写drawRect方法(不须要调用)。绘制想要的图像
-(void)drawRect:(CGRect)rect{
CGContextRef context =
UIGraphicsGetCurrentContext();//context:一块内存区域。将它看做当前view的画布即可了。
NSDictionary *attribute = [NSDictionary
dictionaryWithObjectsAndKeys:[UIFont
systemFontOfSize:
15.0f],
NSFontAttributeName, [UIColor
redColor],
NSForegroundColorAttributeName, nil];
[@"股市走势图"
drawInRect,
,
)
withAttributes:attribute] ;//绘画标题
//曲线
CGContextMoveToPoint(context,
,
);
CGContextAddLineToPoint(context,
,
);
CGContextAddLineToPoint(context,
,
);
CGContextAddLineToPoint(context,
,
);
//CGContextStrokePath(context);
//三角形
CGContextMoveToPoint(context,
,
);
CGContextAddLineToPoint(context,
,
);
CGContextAddLineToPoint(context,
,
);
CGContextClosePath(context);
CGContextStrokePath(context);
//CGContextFillPath(context);
//矩形
CGContextAddRect(context,
CGRectMake,
,
));
[[UIColor
colorWithRed
green
blue
alpha]
set];
//CGContextStrokePath(context);//空心
CGContextFillPath(context);//实心
//圆
, , ,
, *M_PI,
);
CGContextStrokePath(context);
}
@end
然后在须要用到该view的view controller的
viewDidLoad下加入西;以下代码就能够了!
CustomView *view = [[CustomView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview view];
自己定义UIView以实现自绘的更多相关文章
- 关于UIView及其子类重绘drawRect
转载自:https://nezha.gitbooks.io/ios-developmentarticles/content/UIView%E7%9A%84drawRect%E9%87%8D%E7%BB ...
- iOS----自定义UIView,绘制一个UIView
绘制一个UIVIew最灵活的方式就是由它自己完成绘制.实际上你不是绘制一个UIView,你只是子类化了UIView并赋予子类绘制自己的能力.当一个UIVIew需要执行绘图操作的时,drawRect:方 ...
- 【Android】利用自己定义View的重绘实现拖动移动,获取组件的尺寸
以下利用一个app来说明怎样利用自己定义View的重绘实现拖动移动.获取组件的尺寸. 例如以下图,触摸拖动,或者轻轻点击屏幕都能移动图片.假设碰到文字,则会弹出提示. 这里是利用自己定义View的重绘 ...
- UIView的剖析(转)
转自:http://blog.csdn.net/mengtnt/article/details/6716289 前面说过UIViewController,但是UIView也是在MVC中非常重要的一层 ...
- UIView的生命周期和layout方法总结
生命周期 1. loadView 什么时候调用? 每次访问UIViewController的view时候并且view == nil时候调用. 如何实现? 1> 如果在初始化UIViewContr ...
- 01-事件处理简介/UIView拖拽
1.ios当中常见的事件? 触摸事件 加速计事件 远程控制事件2.什么是响应者对象? 继承了UIResponds的对象我们称它为响应者对象 UIA ...
- iOS之 重绘机制
最近在看Core Animation , 今天来谈谈CALayer 和 UIView 中的重绘的一些认识: 我们都知道UIView里面有个成员layer,利用这个这个layer我们可以设置一些圆角,阴 ...
- 8. UIViewController
1. UIViewController 的认识 UIViewController在iOS开发中占据很重要的位置,iOS的整个UI开发的核心思想也是MVC的架构,从UIViewController的命名 ...
- Swift - 键盘弹起,遮挡输入框
extension LoginViewController:UITextFieldDelegate { func textFieldShouldReturn(textField: UITextFiel ...
随机推荐
- [ARC053D]2 つの山札
题意:给定排列$a_{1\cdots n},b_{1\cdots n}$,执行以下操作$2n-2$次来生成一个长度为$2n-2$的序列:选择$a,b$之一(选择的序列长度要$\geq2$),删除它的第 ...
- thread_local变量(转)
转自:https://www.cnblogs.com/pop-lar/p/5123014.html thread_local变量是C++11新引入的一种存储类型.它会影响变量的存储周期(Storage ...
- 腾讯通消息webSDK踩坑
1.腾讯通提供一个通过http协议的接口,可用于发送消息,公告等功能,要使用其功能首先要开启RTX_HTTPServer服务. 2.阅读文档http://rtx.tencent.com/sdk/,为了 ...
- 如何理解Hibernate中的HibernateSessionFactory类
package com.zz.util; import org.hibernate.HibernateException; import org.hibernate.Session; import o ...
- Ext.js 中 25种类型的Ext.panel.Tool
通过Ext.panel.Panel的tools配置项来设置Ext.panel.Tool实例. 要注意的一点是,Ext框架提供的Ext.panel.Tool仅包含按钮图标而具体的点击事件处理函数需要我们 ...
- 用SoapUI进行Webservice的性能压力测试
转载:http://www.cnblogs.com/fnng/archive/2011/08/11/2135440.html 第一步: 新建一个项目:点击新建按钮就行了. 在打开的窗口中填写你项目名, ...
- [0day]基础工具学习
事实上非常多工具多少都使用的比較熟悉了. 可是仍有一些点还是比較有趣以及我不知道的.毕竟第一章,查缺补漏的. (话说这个成语在高三冲刺的时候,老师用得最多,当时还非常悲哀的一直补东墙.漏西墙.始终认为 ...
- unity基础开发----unity游戏速度更快的简易检查表
让游戏速度更快的简易检查表 保持顶点数在 200K 下面,针对 PC 时每帧应为 3M,主要取决于目标 GPU. 若使用内置着色器,请在移动 (Mobile) 或未点亮 (Unlit) 的类别中选择. ...
- ANDROID打包错误ERROR:EXECUTION FAILED FOR TASK ´:APP:LINTVITALRELEASE´.
来自:http://dditblog.com/itshare_657.html 今天修改之前的项目之后.准备打包的时候.一起打包不了.一直提示有问题.错误是一些什么Strings.xml里面的一些信息 ...
- cocos2dx 3.0研究(1)-- hello world程序
1. 在mac上构建hello world很easy ./setup.py source /Users/jiangxf/.bash_profile cocos new AliGame -p com.m ...