2014.12.15 ——— ios开发之hitTest pointInside
参考:
http://blog.csdn.net/bravegogo/article/details/19936689
两个方法的意思 可以参考上面这边文章
我用到的场景主要是:
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指向了删除按钮,就可以再删除按钮的代理方法来处理逻辑了
分享到:
相关推荐
iOS点击响应 hitTest & pointInside,实现 hitTest & pointInside
iOS开发-事件传递与响应者链中的hitTest方法和pointInside方法
更改UIView对响应的交互方式。解决获取被遮挡住视图的响应事件。主要重新写父类的hitTest:withEvent:和pointInside:withEvent:方法实现。
主要介绍了举例讲解iOS应用开发中hitTest触摸事件的编写方法,重点讲解了两个view之间的事件传递,需要的朋友可以参考下
ios的hitTest方法以及不规则区域内触摸事件处理方法 明白点就是圆的触发点
if ( [self.centerButt pointInside:newP withEvent:event]) { return self.centerButt; }else{ return [super hitTest:point withEvent:event]; } }else { return [super hitTest:point withEvent:...
精彩编程与编程技巧-HitTest的妙用 ...
在iOS中发生触摸后,事件会加到UIApplication事件队列,UIApplication会从事件队列取出最前面的事件进行分发处理,通常会先分发给主窗口,主窗口会调用hitTest:withEvent:方法,查找适合的事件触发视图,即 找到被...
如果不是规则元件与元件之间的碰撞可使用:位图像素碰撞BitmapData.hitTest()这个是高精度像素碰撞不过效率要差一点点或者使用,我上传的文件,HitTest.complexHitTestObject(mc,mc1)这种方式是行的。HitTest是经过...
DevExpress HitTest的运用
as3 hitTest实例,有需要的下去看看,我也挣点分
带有碰撞检测游戏示例的透明PNG上JavaScript hitTest
org.eclipse.draw2d.examples.hittest org.eclipse.draw2d.examples.images org.eclipse.draw2d.examples.layouts org.eclipse.draw2d.examples.path org.eclipse.draw2d.examples.printing org.eclipse.draw2d....
cameraNode.position = SCNVector3(x: 0, y: 0, z: 15) // create and add a light to the scene let lightNode = SCNNode() lightNode.light = SCNLight() lightNode.light!.type = SCNLightTypeOmni ...
ios事件响应链,重写- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event以及- (BOOL)pointInside:(CGPoint)point withEvent:(nullable UIEvent *)event方法来查看系统响应事件的逻辑
2个例子来自http://www.andybeaulieu.com/Home/tabid/67/EntryID/160/Default.aspx http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2009/08/11/silverlight-quick-tip-how-to-perform-a-hit-test.aspx这里...
wpf 测试游戏(新手) 很简单的,随便写写
国外大师写的As3.0 碰撞检测文件,静态的,附有使用方法。效率非常高,需要的下。
C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十五)完美捕获精灵之神器 -- HitTest C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十六)通用型角色头像面板 C#开发WPF/Silverlight...