iOS---实现在屏幕上实时绘图的简单效果---CAShaperLayer和UIBezierPath的简单运用
2017-03-03 13:39
531 查看
首先,声明几个属性
然后注册屏幕上的拖拽事件,并初始化贝塞尔曲线和CAShapeLayer
紧接着处理拖拽事件
大功告成。如图
@property(nonatomic,strong)UIBezierPath * beizer; @property(nonatomic,assign)CGPoint startPoint; @property(nonatomic,assign)CGPoint movePoint; @property(nonatomic,strong)CAShapeLayer * shapelayer;
然后注册屏幕上的拖拽事件,并初始化贝塞尔曲线和CAShapeLayer
- (void)viewDidLoad { [super viewDidLoad]; UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panTouch:)]; [self.view addGestureRecognizer:pan]; self.beizer = [UIBezierPath bezierPath]; [self initCAShaper]; } -(void)initCAShaper { self.shapelayer = [CAShapeLayer new]; self.shapelayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); self.shapelayer.fillColor = nil; self.shapelayer.lineCap = kCALineCapRound; self.shapelayer.strokeColor = [UIColor cyanColor].CGColor; self.shapelayer.lineWidth =2; [self.view.layer addSublayer:self.shapelayer]; }
紧接着处理拖拽事件
-(void)panTouch:(UIPanGestureRecognizer *)pan { _startPoint = [pan locationInView:self.view]; if(pan.state == UIGestureRecognizerStateBegan) { [self.beizer moveToPoint:_startPoint]; } if(pan.state == UIGestureRecognizerStateChanged) { _movePoint = [pan locationInView:self.view]; [_beizer addLineToPoint:_movePoint]; self.shapelayer.path = _beizer.CGPath; } }
大功告成。如图
相关文章推荐
- iOS---实现在屏幕上实时绘图的简单效果---CAShaperLayer和UIBezierPath的简单运用
- iOS CAShapeLayer + UIBezierPath 实现震动条调效果
- 使用iOS原生框架实现实时滤镜效果
- iOS实现简单图文混排效果
- iOS开发导航控制器下不同视图控制器之间切换:利用CATrasition和view的layer层来实现自定义的动画效果
- 运用layerlist在5.0以下的android上实现material design的阴影效果
- 简单利用Dialog实现Ios从底部弹出的效果,合QQ空间里面的发表说说弹出拍照的效果类似
- iOS实现简单图文混排效果
- 【iOS开发-24】导航控制器下不同视图控制器之间切换:利用CATrasition和view的layer层来实现自定义的动画效果
- [IOS]对UITableView的简单封装,实现了下拉放大头部图片的效果
- webapp在ios中简单实现滑动,回弹,加速等效果
- iOS 8 模糊视图(毛玻璃效果)的简单实现UIVisualEffectView
- ios开发之简单实现loading动画效果
- iOS实现简单图文混排效果
- iOS-实现简单的动画效果
- iOS 简单实现类似twitter的推门效果
- iOS简单实现图片模糊渐变效果
- iOS简单实现图片模糊渐变效果
- iOS简单的动画效果实现
- 简单CSS技巧实现的Logo动画效果(很像导航栏上经常运用的效果,但有差别)