溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

利用uitouch簡(jiǎn)單的實(shí)現(xiàn)了微信cell效果

發(fā)布時(shí)間:2020-08-04 22:26:05 來源:網(wǎng)絡(luò) 閱讀:522 作者:hxF2168799 欄目:移動(dòng)開發(fā)

#import <UIKit/UIKit.h>


@interface weixinControl : UIControl

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

@end


#import "weixinControl.h"


@implementation weixinControl

{

    CGRect _rect; //記錄self.frame的大小

    UIView *_frontView; //用來顯示主要內(nèi)容

    CGPoint _originPoint; //記錄開始touch時(shí)的position

    CGPoint _currentPoint;//記錄當(dāng)前位置

    CGRect _frontViewOriginRect;//記錄frontVie的初始fram

    CGFloat _offsetXPosition; //記錄x的位移量

    UIButton *_delBtn; //刪除按鈕

}

-(weixinControl *)initWithFram:(CGRect)rect

{

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

        self.backgroundColor = [UIColor cyanColor];

        _rect = rect;

        _offsetXPosition = 0.0f;

        [self makeDeletButton];

        [self makeFrontView];

    }

    return self;

}


-(void)makeDeletButton

{

    _delBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

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

    [_delBtn setTitle:@"刪除" forState:UIControlStateNormal];

    _delBtn.backgroundColor = [UIColor redColor];

    [self addSubview:_delBtn];

}


-(void)makeFrontView

{

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

    _frontViewOriginRect = _frontView.frame;

    _frontView.backgroundColor = [UIColor blueColor];

    [self addSubview:_frontView];

}


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

{

    UITouch *beganTouch = [touches anyObject];

    _originPoint = [beganTouch locationInView:self];

}


-(void)touchesEnded:(NSSet<UITouch *> *)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<UITouch *> *)touches withEvent:(UIEvent *)event

{

    UITouch *moveTouch = [touches anyObject];

    _currentPoint = [moveTouch locationInView:self];

    _offsetXPosition = _currentPoint.x - _originPoint.x;

    if (_offsetXPosition >= 0) {

        return;

    }

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

}

@end


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI