您好,登錄后才能下訂單哦!
#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
免責(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)容。