- 浏览: 659659 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lizaochengwen:
网络请求碰到的中文乱码使用encodeURL吧- (NSStr ...
iPhone开发/iPad开发 中文乱码问题 -
hhb19900618:
还是没弄懂怎么解决了中文乱码? 正确代码能重写贴出吗
iPhone开发/iPad开发 中文乱码问题 -
zhengjj_2009:
我的理解是讲ipa文件解压缩之后再重新打包,已经破坏了签名,所 ...
xcodebuild和xcrun实现自动打包iOS应用程序 -
zhengjj_2009:
我参考你的“ 从ipa格式的母包生成其它渠道包的shell脚本 ...
xcodebuild和xcrun实现自动打包iOS应用程序 -
同一片天空:
问题果然解决了
iOS 搭建 XMPP实现环境
PaintView.h
CGPoint lastPoint;
UIImageView *lineImageView;
PaintView.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
lineImageView = [[UIImageView alloc] initWithFrame:frame];
lineImageView.backgroundColor = [UIColor grayColor];
[self addSubview:lineImageView];
}
return self;
}
- (void)drawRect:(CGRect)rect
{
CGContextRef c = UIGraphicsGetCurrentContext(); // 获取当前的设备上下文,必须在drawRect中获取,否则会出错
CGContextSetLineCap(context, kCGLineCapRound); // 设置划线样式
CGContextSetLineWidth(context, 6);
CGContextSetRGBStrokeColor(context, 0, 0, 0, 1); // 设置画出的线的颜色信息
CGContextBeginPath(context);
CGContextMoveToPoint(context, 10, 10);
CGContextAddLineToPoint(context, 100, 100);
CGContextStrokePath(context); // 绘出图形
[super drawRect:rect];
}
// 移动鼠标划线
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
lastPoint = [aTouch locationInView:self];
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextSetAllowsAntialiasing(context, YES);
CGContextMoveToPoint(context, 0, 15);
CGContextAddEllipseInRect(context, CGRectMake(0, 0, 70, 70));
CGContextDrawPath(context, 1);
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
CGPoint currentPoint = [aTouch locationInView:self];
UIGraphicsBeginImageContext(self.frame.size); // 创建一个bitmap设备上下文 如果不创建,UIGraphicsGetCurrentContext()不能获取当前设备上下文
[lineImageView.image drawInRect:CGRectMake(0, 0, 768, 1024)]; // 设置图形的显示区域
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 7);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 1.0, 1.0, 1.0);
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
[lineImageView setImage:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext(); // 关闭创建的设备上下文
lastPoint = currentPoint;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UIGraphicsBeginImageContext(self.frame.size);
[lineImageView.image drawInRect:CGRectMake(0, 0, 768, 1024)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 7);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 1.0, 1.0, 1.0);
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
CGContextFlush(UIGraphicsGetCurrentContext());
[lineImageView setImage:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext();
}
CGPoint lastPoint;
UIImageView *lineImageView;
PaintView.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
lineImageView = [[UIImageView alloc] initWithFrame:frame];
lineImageView.backgroundColor = [UIColor grayColor];
[self addSubview:lineImageView];
}
return self;
}
- (void)drawRect:(CGRect)rect
{
CGContextRef c = UIGraphicsGetCurrentContext(); // 获取当前的设备上下文,必须在drawRect中获取,否则会出错
CGContextSetLineCap(context, kCGLineCapRound); // 设置划线样式
CGContextSetLineWidth(context, 6);
CGContextSetRGBStrokeColor(context, 0, 0, 0, 1); // 设置画出的线的颜色信息
CGContextBeginPath(context);
CGContextMoveToPoint(context, 10, 10);
CGContextAddLineToPoint(context, 100, 100);
CGContextStrokePath(context); // 绘出图形
[super drawRect:rect];
}
// 移动鼠标划线
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
lastPoint = [aTouch locationInView:self];
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextSetAllowsAntialiasing(context, YES);
CGContextMoveToPoint(context, 0, 15);
CGContextAddEllipseInRect(context, CGRectMake(0, 0, 70, 70));
CGContextDrawPath(context, 1);
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
CGPoint currentPoint = [aTouch locationInView:self];
UIGraphicsBeginImageContext(self.frame.size); // 创建一个bitmap设备上下文 如果不创建,UIGraphicsGetCurrentContext()不能获取当前设备上下文
[lineImageView.image drawInRect:CGRectMake(0, 0, 768, 1024)]; // 设置图形的显示区域
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 7);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 1.0, 1.0, 1.0);
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
[lineImageView setImage:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext(); // 关闭创建的设备上下文
lastPoint = currentPoint;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UIGraphicsBeginImageContext(self.frame.size);
[lineImageView.image drawInRect:CGRectMake(0, 0, 768, 1024)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 7);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 1.0, 1.0, 1.0);
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
CGContextFlush(UIGraphicsGetCurrentContext());
[lineImageView setImage:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext();
}
发表评论
-
SOCK_STREAM和SOCK_DGRAM
2015-07-23 20:08 1640sock_stream 是有保障的(即能保证数据正确传送到 ... -
SOCKET bind INADDR_LOOPBACK和INADDR_ANY的区别
2015-07-23 19:49 2057今天写程序时候,服务器端启动了,然后客户端总是连接不上,con ... -
htons()
2015-07-23 19:26 580在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺 ... -
使用symbolicatecrash分析crash文件
2015-03-10 11:32 1179原文 http://www.cnblogs.com/ning ... -
程序设计中的计算复用(Computational Reuse)
2015-02-10 10:18 662从斐波那契数列说起 ... -
didReceiveMemoryWarning
2015-02-09 16:11 541IPhone下每个app可用的内存是被限制的,如果一个app使 ... -
iOS开发中怎么响应内存警告
2015-02-09 16:08 654好的应用应该在系统内存警告情况下释放一些可以重新创建的资源。在 ... -
ASIHTTPRequest多次重复请求的问题
2014-12-17 14:34 641在一个车票订购的项目中,点击一次订购,却生成了2次订单,通过抓 ... -
从 CloudKit 看 BaaS 服务的趋势
2014-09-26 11:51 726从 6 月份 WWDC 苹果发布 ... -
ios编程--AVCapture编程理解
2014-09-26 11:03 9230、媒体采集的几个东西。这里所需要明白的是,在这个流程中,这里 ... -
NSURLProtocol
2014-09-25 10:42 8191、http://nshipster.com/nsurlpro ... -
关于iOS8的extension插件
2014-09-25 10:41 1279关于iOS8的extension插件,有兴趣的同学可以参考一下 ... -
【转】ios app在itunesConnect里面的几种状态
2014-08-05 10:34 1145Waiting for Upload (Yellow) Ap ... -
[转]iOS Dev (45) iOS图标与切片处理工具Prepo
2014-02-07 17:02 1034iOS Dev (45) iOS图标与切片处理工具Prepo ... -
phoneGap开发IOS,JS调用IOS方法/phoneGap插件开发
2014-01-13 17:49 1245前沿 废话不说phoneGap是什么不多介绍,官方网站: h ... -
如何在IOS平台下搭建PhoneGap开发环境(PhoneGap2.5)
2014-01-13 15:23 747由于在下最近在做基于HTML5的跨平台移植,搭建环境的时候着实 ... -
xcode 4 制作静态库详解
2013-12-20 18:27 533最近在做Apple的IOS开发,有开发静态库的需求,本身IOS ... -
【翻译】ios教程-创建静态库
2013-12-20 18:19 3108作者:shede333 主页:htt ... -
封装自己的控件库:iPhone静态库的应用
2013-12-20 17:03 581由于iPhone 控件的极度匮乏和自定义组件在重用上的限制,在 ... -
iphone:使用NSFileManager取得目录下所有文件(遍历所有文件)
2013-11-18 17:56 870From:http://note.sdo.com/u/xiao ...
相关推荐
下面将详细介绍如何利用全局DC(Device Context)实现在屏幕上根据鼠标移动画线。 首先,我们需要了解什么是DC。在Windows编程中,DC是一个对象,它包含了与特定设备相关的图形输出信息,如屏幕、打印机或图像设备...
在计算机图形学中,画线是一项基础且重要的任务,它涉及到屏幕像素的精确控制和算法的应用。EasyX是一个简易的图形库,专为C++设计,使得初学者和专业人士能够轻松进行图形绘制。本篇文章将深入探讨如何使用EasyX...
当鼠标按下时,可以在QPaintPath中开始一个新的路径,并在鼠标移动事件`mouseMoveEvent()`中不断添加点到路径中。当鼠标释放时,路径完成,可以进行后续的处理,如保存路径信息或者在路径上添加标注。 为了使图形...
- **MouseMove**:当鼠标移动时触发,如果左键被按下,则持续画线。 - **MouseLeftButtonUp**:当鼠标左键释放时触发,结束画线。 ```csharp private Point? _startPoint; private Pen _pen; private void Canvas_...
canvas动态划线(canvas跟随鼠标变幻线条,知乎登录页面动态线条背景动画代码) 每次被下载,所需积分就被平台自动叠加,感觉有点傻,无奈重新编辑上传,感觉可选的这个1-5积分就有点少,算了无所谓了你们能下载就好
4. **鼠标消息**:当鼠标移动时,操作系统会向窗口发送`WM_MOUSEMOVE`消息。还有其他与鼠标相关的消息,如`WM_LBUTTONDOWN`(左键按下)、`WM_LBUTTONUP`(左键释放)等。 5. **处理鼠标消息**:你需要定义一个窗口...
本例代码使用了Python的PyQt5、matplotlib和Dataframe画图,并在图中添加了一条随鼠标移动的虚线,之后经过计算在画图的线上标注出了鼠标在当时x轴停留时的数据,本例只是一个简单的例子,自己可以根据功能修改
在MouseDown事件中记录起始点,在MouseMove事件中根据鼠标的移动绘制线条,在MouseUp事件中结束画线。 ```csharp private Point startPoint; private bool isDrawing; private void pictureBox1_MouseDown(object ...
本教程将探讨如何在MFC对话框中实现“画基准线并随鼠标移动”的功能。这个功能常见于图形编辑或测量类应用,允许用户通过鼠标交互来定位、标记或测量界面中的元素。 首先,我们需要创建一个基于MFC的对话框项目。在...
要使十字交叉线随着鼠标移动而更新,我们需要处理WM_MOUSEMOVE消息。当鼠标在窗口内移动时,此消息会被发送。在消息处理函数中,再次调用InvalidateRect函数来标记需要重绘的区域,然后Windows会自动调用OnPaint...
为了显示轨迹,可以使用`MoveTo`和`LineTo`函数在画布上画线,连接鼠标之前的位置和当前位置。 4. **重绘策略**:每次鼠标移动时,我们可能不希望立即重绘整个窗口,因为这可能导致性能下降。可以通过在`...
以下是一个简单的示例代码,展示了如何监听鼠标移动并计算相对位移: ```cpp class MyWidget : public QWidget { Q_OBJECT public: MyWidget(QWidget *parent = nullptr) : QWidget(parent) {} protected: void ...
根据给定的信息,本文将详细解释“鼠标移动样式”与“鼠标移动效果”的相关知识点。 ### 一、鼠标移动样式概述 鼠标移动样式是指在网页或应用程序中,鼠标指针根据用户操作或页面元素的不同而变化的样式。通过改变...
每次鼠标移动时,更新标签的Text属性,显示当前的坐标。 此外,还需要考虑窗体的Paint事件,因为当窗体被部分或全部覆盖后重新显示时,我们需要清除旧的线条,防止线条堆积。在Paint事件中,可以使用Graphics对象的...
例如,`WM_MOUSEMOVE`消息表示鼠标移动,`WM_LBUTTONDOWN`和`WM_LBUTTONUP`分别代表左键按下和释放。当用户按下并拖动鼠标时,我们需要捕获这些消息并根据鼠标位置更新直线。 1. 创建窗口类: 在MFC中,我们需要...
为了使画线过程平滑,可能需要在每次鼠标移动时都调用Invalidate()函数,强制重绘窗口。 至于显示“猪头”和“猪尾巴”,这可以通过在适当的位置绘制位图或者自定义形状来实现。可以在OnLButtonDown()和OnLButtonUp...
本项目所介绍的就是一种这样的技术——“跟随鼠标移动的十字坐标显示”。这个小功能可以在用户鼠标在页面上移动时,实时地显示一个十字架标记,指示出鼠标的当前位置,给人一种酷炫且个性化的视觉效果。 要实现这个...
鼠标移动时,根据起始位置和当前鼠标位置绘制线条;释放鼠标时,停止绘制。 ```javascript let isDrawing = false; let start = null; canvas.addEventListener('mousedown', (e) => { isDrawing = true; start ...
每次鼠标移动,都会根据当前位置即时更新线段的终点,提供了一个实时的画线体验。 总的来说,MFC提供了一种方便的方式来构建Windows桌面应用程序,包括交互式的图形绘制。通过处理鼠标事件和利用GDI(Graphics ...