利用uitouch简单的实现了微信cell效果

#import

创新互联公司自2013年起,先为潘集等服务建站,潘集等地企业,进行企业商务咨询服务。为潘集企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

@interface weixinControl : UIControl

-(weixinControl *)initWithFram:(CGRect)rect;

@end

#import"weixinControl.h"

@implementation weixinControl

{

   CGRect _rect;//记录self.frame的大小

    UIView *_frontView; //用来显示主要内容

   CGPoint _originPoint;//记录开始touch时的position

    CGPoint _currentPoint;//记录当前位置

    CGRect _frontViewOriginRect;//记录frontVie的初始fram

    CGFloat _offsetXPosition; //记录x的位移量

    UIButton *_delBtn; //删除按钮

}

-(weixinControl *)initWithFram:(CGRect)rect

{

    if (self = [super initWithFrame:rect]) {

       self.backgroundColor = [UIColorcyanColor];

        _rect = rect;

        _offsetXPosition = 0.0f;

        [selfmakeDeletButton];

        [selfmakeFrontView];

    }

   returnself;

}

-(void)makeDeletButton

{

   _delBtn = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

   _delBtn.frame =CGRectMake(_rect.size.width - 50, 0, 50,_rect.size.height);

    [_delBtnsetTitle:@"删除"forState:UIControlStateNormal];

   _delBtn.backgroundColor = [UIColorredColor];

    [selfaddSubview:_delBtn];

}

-(void)makeFrontView

{

   _frontView = [[UIViewalloc]initWithFrame:CGRectMake(0, 0,_rect.size.width,_rect.size.height)];

   _frontViewOriginRect =_frontView.frame;

   _frontView.backgroundColor = [UIColorblueColor];

    [selfaddSubview:_frontView];

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    UITouch *beganTouch = [touches anyObject];

   _originPoint = [beganTouchlocationInView:self];

}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

   if (_offsetXPosition < (0 -_delBtn.frame.size.width)) {

       _frontView.frame =CGRectMake((0 -_delBtn.frame.size.width),_frontViewOriginRect.origin.y,_frontViewOriginRect.size.width,_frontViewOriginRect.size.height);

    }

    else

    {

       _frontView.frame =_frontViewOriginRect;

    }

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

    UITouch *moveTouch = [touches anyObject];

   _currentPoint = [moveTouchlocationInView:self];

   _offsetXPosition =_currentPoint.x -_originPoint.x;

   if (_offsetXPosition >= 0) {

        return;

    }

   _frontView.frame =CGRectMake(_offsetXPosition,_frontViewOriginRect.origin.y,_frontViewOriginRect.size.width,_frontViewOriginRect.size.height);

}

@end


网站标题:利用uitouch简单的实现了微信cell效果
文章分享:http://azwzsj.com/article/jdgpsi.html