随笔分类 - iOS
摘要:截屏效果实现具体思路为:把UIView的东西绘制图片上下文当中,生成一张新的图片. 注意:UIView上的东西是不能直接画到上下文当中的. UIView之所以能够显示是因为内部的一个层(layer),所以我要把层上的东西渲染到UIView上面的. 怎样把图层当中的内容渲染到上下文当中? 直接调用la
阅读全文
摘要:具体实现思路: 1.假设边框宽度为BorderW 2.开启的图片上下文的尺寸就应该是原始图片的宽高分别加上两倍的BorderW,这样开启的目的是为了不让原始图片变形. 3.在上下文上面添加一个圆形填充路径.位置从0,0点开始,宽高和上下文尺寸一样大.设置颜色为要设置的边框颜色. 4.继续在上下文上面
阅读全文
摘要:裁剪图片思路. 开启一个图片上下文. 上下文的大小和原始图片保持一样.以免图片被拉伸缩放. 在上下文的上面添加一个圆形裁剪区域.圆形裁剪区域的半径大小和图片的宽度一样大. 把要裁剪的图片绘制到图片上下文当中. 从上下文当中取出图片. 关闭上下文. 1.如何设置圆形路径? UIBezierPath *
阅读全文
摘要:给图片水印的目的: 告诉别人图片的来源. 防止别人盗用图片.打广告. 添加水印它最终是生成了一个新的图片. 生成图片要用到了图片上下文.不需要再去自定义View, 之前一直在自定义View,是因为要拿跟View相关联的上下文. 跟View相关联的上下文是系统自动帮我们创建的,所以不需要我们自己手动创
阅读全文
摘要:上下文的矩阵操作其实就是修改上下文的形变, 主要有以下几种 平移 CGContextTranslateCTM(ctx, 100, 100); 旋转 CGContextRotateCTM(ctx, M_2_PI); 缩放 CGContextScaleCTM(ctx, 0.5, 0.5); 注意:上下文
阅读全文
摘要:上下文状态栈为内存中的一块区域,它用来保存前上下文当的状态. 我们获取的图层上下文当中其实两块区域,一个是存放添加的路径,一个是用来保存用户设置的状态, 这些状态包括线条的颜色,线宽等. 当我们把上下文的内容渲染到View上面的时候, 它会自动将设置的所有上下文状态运行到保存的路径上面显示到View
阅读全文
摘要:1.定时器雪花整体思路: 先在控制器View面绘制一个雪花. 在View加载完毕后,添加一个定时器. 在定时器方法当中调用得绘方法. 在绘图方法当不段的去修改雪花的Y值. 当雪花的Y值超过屏幕的高度时,让雪花的Y值重新设为0.从最顶部开始. 2.添加定时器实现方案 第一种采用NSTime 第二种采用
阅读全文
摘要:整体思路: 我们想要模仿系统的UIImageView,我们必须得要知道系统的UIView怎么用. 系统的用法是创建一个UIImageView对象,设置frame,给它传递一个UIImage,再把它添加到一个View上面就可以了. 可以切换图片. 这是第一个用法. 第二种用法,就是在创建的时候直接传递
阅读全文
摘要:一般使用UIKit给我们提供的绘图来绘制一些文字,图片这些东西. UIKit给我们提供画图的方法底层也是分为四步.所以也必须在drawRect方法当中去写. 1.如何画文字? 先创建好要画的文字 使用UIKit提供的方法进行绘制. 方法说明: drawAtPoint:要画到哪个位置 withAttr
阅读全文
摘要:第一步, 获取上下文 第二步,拼接路径 ,绘制第一个扇形 获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); CGPoint center = CGPointMake(125, 125); CGFloat radius = 100; CGF
阅读全文
摘要:03-下载进条. 1.搭建界面. 2.拖动滑竿的时候让他里面的能够跟着我的拖动,数字在改变. 数字改变时有一个注意点, 就是要显示%,它是一个特殊的符号,要用两个%%代表一个% 3.拖动滑竿的时候就是在上面画弧. 从最上面,按顺时针画,所以,它的起始角度是-90度.结束角度也是-90度 也是从起始角
阅读全文
摘要:02-基本线条绘制 1.DrawRect方法作用?什么时候调用. DrawRect作用:专用在这个方法当中绘图的.只有在这个方法当中才能取得跟View相关联的上下文. DrawRect是系统自己调用的, 它是当View显示的时候自动调用. 2.画线(基本步骤描述) 2.1获取跟View相关联的上下文
阅读全文
摘要:1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Mac系统 2.Quartz2D能完成的工作 画基本线条,绘制文字,图片,截图,自定义UIView. 3.Quartz2D实例演示. 4.Quartz2D在开发中的价值 当我们的控件样式极其复杂时,可以把控件内部的结构给画出画,就
阅读全文
摘要:09-手势识别(拖动,旋转,捏合) 1.平移 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)]; 添加手势 [self.imageV ad
阅读全文
摘要:08-手势识别(点按,长按,轻扫) 通过touches方法监听view触摸事件有以下几个缺点 1.必须得自定义view,在自定义的View当中去实现touches方法. 2.由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件 3.不容易区
阅读全文
摘要:用户点击屏幕后产生的一个触摸事件,经过一系列的传递过程后,会找到最合适的视图控件来处理这个事件, 找到最合适的视图控件后,就会调用控件的touches方法来作具体的事件处理 那这些touches方法的默认做法是将事件顺着响应者链条向上传递,将事件交给上一个响应者进行处理 什么是响应者链条? 是由多个
阅读全文
摘要:业务逻辑1: 底部一个按钮, 按钮的上面有一个View,遮挡在按钮的上面. 点击View时, View接收事件,当发现点击的点在按钮的位置时, 让底部的按钮处理事件. 实现思路: 实现View的touchBegain方法,先坚听UIView的点击. 并去实现UIView的HitTest方法, 在hi
阅读全文
摘要:作用:寻找最适合的View 参数:当前手指所在的点.产生的事件 返回值:返回谁, 谁就是最适合的View. 什么时候用调用:只要一个事件,传递给一个控件时, 就会调用这个控件的hitTest方法 -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent
阅读全文

浙公网安备 33010602011771号