#import "MyView.h" @implementation MyView { CGContextRef context;//UIGraphicsGetCurrentContext(); NSMutableArray *array ; } - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } /**/ // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code [self drawTab]; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ if(array == nil){ array = [[NSMutableArray alloc]initWithCapacity:10]; } UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self]; [array addObject:[NSValue valueWithCGPoint:point]]; } -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self]; [array addObject:[NSValue valueWithCGPoint:point]]; } -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self]; [array addObject:[NSValue valueWithCGPoint:point]]; [self setNeedsDisplay]; } -(void) drawTab { context = UIGraphicsGetCurrentContext(); NSValue *value = nil; for(int i=0;i<array.count;i++){ value = [array objectAtIndex:i]; CGPoint point ; [value getValue:&point]; if(i==0){ CGContextBeginPath(context); CGContextMoveToPoint(context,point.x ,point.y); }else if(i == array.count-1){ CGContextAddLineToPoint(context, point.x, point.y); CGContextDrawPath(context, kCGPathStroke); }else { CGContextAddLineToPoint(context, point.x, point.y); } } } @end
相关推荐
一句代码设置UIView及其子类的badgeValue,默认右上角显示 cocoaChina 上传代码比较麻烦,如果有什么问题或者添加什么功能,欢迎大家去我简书留言http://www.jianshu.com/p/497b33250ec1 喜欢的话可以关注我,...
创建一个`UIRefreshControl`实例,设置其代理,并将其添加到`UIScrollView`中,就可以监听到下拉刷新的动作。 ```swift let refreshControl = UIRefreshControl() refreshControl.addTarget(self, action: #...
UIView-Positioning, 在UIView对象中,基于简单属性的框架属性设置 uiview定位收费 UIView Positioning 是一个快速扩展,它提供简单的shorthand 方法,以方便的方式定义任何UIView对象的框架属性( 宽度,高度,x,y ...
- 当标准视图无法满足需求时,开发者可以创建自定义视图,继承自`UIView`,并重写`draw(_ rect: CGRect)`方法来绘制自定义内容,还可以实现其他方法以处理触摸事件和其他交互。 理解并熟练掌握这些`UIView`的知识...
本文将深入探讨如何实现标题所指的"ios-UIView设置局部阴影,左右上下,左右底部阴影"这一功能,同时参考提供的资源链接进行讲解。 首先,让我们了解在iOS中设置阴影的基本步骤。在UIView的属性中,有两个关键的...
UIView 动画 UIView动画
`UIView AutoLayout`是这个机制的一个扩展,为`UIView`类添加了分类,提供了更加简洁易用的接口来设置自动布局约束。这个压缩包"UIView AutoLayout.zip"包含的项目名为"UIView-AutoLayout-master",很可能是GitHub上...
"IOS设置UIView的边框为圆角详解及实例" 本文主要介绍了IOS设置UIView的边框为圆角的相关知识点,通过使用QuartzCore库,实现UIView的边框设置为圆角,添加边框、背景图片等功能。 一、IOS设置UIView的边框为圆角...
作者sSegev,源码SSAlphaPass,SSAlphaPass 可在你当前的视图下传递触摸事件给 UIView\UIButton,但前提是你的像素 alpha 通道应该为0(像素是透明的)。这个方案比单纯忽视掉顶层视图要好,因为你仍然可以在 UIView...
接着,通过设置其frame属性,我们可以指定渐变层在UIView中的位置和大小。最后,将这个CAGradientLayer作为UIView的layer.contents,即可将渐变效果应用到UIView上。 对于描述中提到的“已封装好的实现渐变的UIView...
首先,`UIView+RectCorner.h`文件中会声明一些方法,这些方法用于设置`UIView`的各个角落的圆角半径。可能的方法包括: 1. `- (void)roundCorners:(UIRectCorner)corners radius:(CGFloat)radius;` 这个方法允许...
"uiview随手势旋转"这个主题,就是关于如何利用手势识别来实现UIView的旋转效果。 `KTOneFingerRotationGestureRecognizer`是一个自定义的手势识别类,它是对苹果内置的`UIGestureRecognizer`类的扩展。`...
例如,如果你希望生成的图片为2倍分辨率(适用于Retina屏幕),即使实际屏幕是3倍分辨率,你可以设置scale为2。 `UIGraphicsBeginImageContextWithOptions`函数接受三个参数:图像的尺寸,是否保留透明度(false...
通常,每个应用程序只有一个主要的UIWindow实例,虽然理论上可以创建多个,但只有一个可以设置为key window,这个key window会接收并处理触摸事件。UIWindow的初始化通常在AppDelegate的`...
开发者不应主动调用此方法,而应在视图控制器的view属性被请求且当前视图为空(即nil)时,由视图控制器自动调用。如果开发者需要手动创建视图,那么应当重写这个方法,但是重写时不要调用父类的[super loadView],...
创建好遮罩路径后,将其赋值给`CAShapeLayer`的`path`属性,并将这个遮罩层设置为`UIView`的`layer.mask`,这样遮罩的形状就会决定`UIView`的显示范围。 5. **GCD多线程优化**: 由于图形操作可能会涉及大量的...
3. **触摸事件处理**:`UIView`能响应用户的触摸事件,比如`touchesBegan:withEvent:`, `touchesMoved:withEvent:`, `touchesEnded:withEvent:`和`touchesCancelled:withEvent:`等方法。通过这些方法,开发者可以...
在iOS开发中,`UIView` 是一个非常基础且重要的组件,它是所有视图类的基类,用于在屏幕上展示内容。本示例项目"绘制UIView"着重探讨如何自定义`UIView`,特别是如何通过代码来绘制一个具有特殊形状,如顶部为凹进...
UIView+Extension 对view的一个扩展
基于UIView扩展的类目,用于设置上下左右圆角,可设置单边圆角,也可设置为圆形 github地址:https://github.com/LQQZYY/UIViewCornerDemo 喜欢的话就给颗星支持一下,感谢!