• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: 其他
  • 标签: 手势  矩形  

资源简介

ios. oc 实现的,手指在屏幕上滑动获得前一个矩形框. 可以自定义矩形位置.ios. oc 实现的,手指在屏幕上滑动获得前一个矩形框. 可以自定义矩形位置.

资源截图

代码片段和文件信息

//
//  CLWOverLayView.m
//  CheLianWang
//
//  Created by 马建奎 on 2018/11/22.
//  Copyright © 2018年 MaJiankui. All rights reserved.
//

#import “CLWOverLayView.h“

@interface CLWOverLayView ()
{
    CGFloat _selfHeight;
    CGFloat _selfWidth;
    CGRect _cropframe;
    
    BOOL _topLineMove;
    BOOL _leftLineMove;
    BOOL _bottomLineMove;
    BOOL _rightLineMove;
    
    CGPoint _lastPoint;
    CGPoint _endPoint;
    
    CGPoint _topLeftPoint;
    CGPoint _topRightPoint;
    CGPoint _bottomLeftPoint;
    CGPoint _bottomRightPoint;
    
    BOOL _topLeftPointMove;
    BOOL _topRightPointMove;
    BOOL _bottomLeftPointMove;
    BOOL _bottomRightPointMove;
}

@property (nonatomic strong) UIView *contentView;
@property (nonatomic strong) CAShapelayer *croplayer;

@end

@implementation CLWOverLayView

- (instancetype)initWithframe:(CGRect)frame {
    if (self = [super initWithframe:frame]) {
        
        [self addSubview:self.contentView];
        [self addSubview:self.messageLabel];
        [self addSubview:self.topLeftPointView];
        [self addSubview:self.topRightPointView];
        [self addSubview:self.bottomLeftPointView];
        [self addSubview:self.bottomRightPointView];
        
        [self setDefaultData];
    }
    return self;
}

- (void)layoutSubviews {
    [super layoutSubviews];
}

#pragma mark -

- (void)setDefaultData {
    
    _topLeftPointMove = false;
    _topRightPointMove = false;
    _bottomLeftPointMove = false;
    _bottomRightPointMove = false;
    
    _selfWidth = self.width;
    _selfHeight = self.height;
    
    _topLeftPoint = CGPointMake(0.0 0.0);
    _topRightPoint = CGPointMake(0.0 0.0);
    _bottomRightPoint = CGPointMake(0.0 0.0);
    _bottomLeftPoint = CGPointMake(0.0 0.0);
    
    //设置裁剪框区域
    [self restframeData];
}

// 刷新尺寸信息
- (void)restframeData {
    
    // x 最小 y 最小.
    CGFloat x = _topLeftPoint.x < _topRightPoint.x ? _topLeftPoint.x : _topRightPoint.x;
    CGFloat y = _topLeftPoint.y < _bottomLeftPoint.y ? _topLeftPoint.y : _bottomLeftPoint.y;
    CGFloat width = [self getPintDistanceFromPoint:_topLeftPoint toPoint:_topRightPoint];
    CGFloat height = [self getPintDistanceFromPoint:_topLeftPoint toPoint:_bottomLeftPoint];
    
    //设置裁剪框尺寸
    self.cropSize = CGSizeMake(width height);
    
    //设置裁剪框区域
    _cropframe = CGRectMake(xywidthheight);
    
    [self transparentCutSquareArea];
}

// 矩形裁剪区域
- (void)transparentCutSquareArea {
    
    self.cropframe = _cropframe;
    
    //矩形裁剪区域
    UIBezierPath *alphaPath = [UIBezierPath bezierPathWithRect:CGRectMake(0 0 _selfWidth _selfHeight)];
    UIBezierPath *squarePath = [UIBezierPath bezierPathWithRect:_cropframe];
    [alphaPath appendPath:squarePath];
    CAShapelayer *shapelayer = [CAShapelayer layer];
    shapelayer.path = alphaPath.CGPath;
    shapelayer.fillRule = kCAFillRuleEvenOdd;
    self.contentView.layer.mask = shapelayer;
    
    //裁剪框
    UIBezierPath *cropPath = [UIBezierPath bezierPathWithRect:CGRectM

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-22 15:06  overLayview\
     文件         895  2018-12-22 15:00  overLayview\CLWOverLayView.h
     目录           0  2018-12-22 15:06  __MACOSX\
     目录           0  2018-12-22 15:06  __MACOSX\overLayview\
     文件         333  2018-12-22 15:00  __MACOSX\overLayview\._CLWOverLayView.h
     文件       13058  2018-12-22 15:00  overLayview\CLWOverLayView.m
     文件         333  2018-12-22 15:00  __MACOSX\overLayview\._CLWOverLayView.m

评论

共有 条评论