您的位置:首页 > 产品设计 > UI/UE

简单方法实现 uitableviewcell 左滑出现各种自定义功能视图

2014-08-09 11:27 731 查看
一 先继承 tableviewcell

二添加左滑右滑

UISwipeGestureRecognizer *swipeLeft=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeCell:)];
swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;
[self addGestureRecognizer:swipeLeft];

UISwipeGestureRecognizer *swipeRight=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeCell:)];
swipeRight.direction=UISwipeGestureRecognizerDirectionRight;
[self addGestureRecognizer:swipeRight];

三 实现左滑右滑功能

if (swipe.direction==UISwipeGestureRecognizerDirectionLeft) {
__block CGPoint point=self.contentView.center;
if (point.x>=(self.frame.size.width-self.swiftLeftLength)) {
[self stepLeftView];
[UIView animateWithDuration:0.15 animations:^{

point.x=point.x-self.swiftLeftLength;
self.contentView.center=point;

UIView *leftView=[self viewWithTag:505];
CGRect frame=leftView.frame;
frame.origin.x=self.frame.size.width-self.swiftLeftLength;
leftView.frame=frame;
} completion:^(BOOL finished) {

}];

}

}else if (swipe.direction==UISwipeGestureRecognizerDirectionRight){
__block CGPoint point=self.contentView.center;
if (point.x<(self.frame.size.width-self.swiftLeftLength)) {

[UIView animateWithDuration:0.15 animations:^{
point.x=point.x+self.swiftLeftLength;
self.contentView.center=point;

UIView *leftView=[self viewWithTag:505];
CGRect frame=leftView.frame;
frame.origin.x=self.frame.size.width;
leftView.frame=frame;

} completion:^(BOOL finished) {

[self removeLeftView];

}];
}
}

四添加左滑出来的视图

-(void)stepLeftView{
UIView *leftView=[[UIView alloc] initWithFrame:CGRectMake(self.frame.size.width, 0, self.swiftLeftLength, self.frame.size.height)];
leftView.tag=505;
[leftView addSubview:self.leftContentView];
[self addSubview:leftView];
}

五 解决cell重用机制导致的问题

- (void)prepareForReuse {
[super prepareForReuse];
[self reset];
}



demo 下载 http://download.csdn.net/detail/wjszf/7733277
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐