2014.12.15 ——— ios开发之hitTest pointInside

2014.12.15 ——— ios开发之hitTest pointInside
参考:[url]http://blog.csdn.net/bravegogo/article/details/19936689[/url]


两个方法的意思 可以参考上面这边文章

我用到的场景主要是:

UITableView 每一个cell 右划出现删除,点击其他地方取消删除按钮

思路:

捕获右划,建立一个UITableView的子view,大小与其一样,并且这个子view 重写hitTest方法,来判断是否点击了删除按钮

代码:

#import <UIKit/UIKit.h>

@interface MyView : UIView
{
}

@property(nonatomic, assign) UIView *ignoreView;

- (id)initWithParentView:(UIView *)parent ignoreView:(UIView *)ignoreView;



#import "MyView.h"
@implementaion MyView

- (id)initWithParentView:(UIView *)parent ignoreView:(UIView *)ignoreView{
self = [[MyView alloc] init];
if(self){
self.frame = parent.frame;
self.backgroundColor = [UIColor clearColor];
[parent addSubView:self];
_ignoreView = ignoreView;
self.userInteractionEnabled = YES;
}
return self;
}

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
UIView *result = [super hitTest:point withEvent:event];
CGPoint buttonPoint = [_ignoreView convertPoint:point fromView:self];
if([_ignoreView pointInside:buttonPoint withEvent:event]){
return _ignoreView;
}
return result;
}



这样之后 当点击到删除按钮了,虽然删除按钮其实没有捕获到 但是通过hitTest指向了删除按钮,就可以再删除按钮的代理方法来处理逻辑了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值