子控件超出父控件响应

// 事件传递给subview
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
   CGPoint subviewP = [self convertPoint:point toView:_subview];

    if ([_subview pointInside:subviewP withEvent:event]) {
        return _subview;
    }else
    {
        return [super hitTest:point withEvent:event];
    }
}

// 手指移动
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];

    CGPoint location =  [touch locationInView:self];

    CGPoint pre = [touch previousLocationInView:self];

    CGFloat offsetX = location.x - pre.x;
    CGFloat offsetY = location.y - pre.y;

    CGPoint center = self.center;
    center.x += offsetX;
    center.y += offsetY;

    self.transform = CGAffineTransformTranslate(self.transform, offsetX, offsetY);
}
时间: 2024-08-08 06:20:10

子控件超出父控件响应的相关文章

WPF查找子控件和父控件方法[转帖]

WPF查找子控件和父控件方法 一.查找某种类型的子控件,并返回一个List集合 public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : FrameworkElement { DependencyObject child = null; List<T> childList = new List<T>(); for (int i = 0; i <= V

子控件根据父控件行宽自动换行---LineWrapLayout实现

一些带搜索功能的app,在搜索栏下面一般会提供一些关键字供用户选择. 也可以根据用户输入的文字,在下一次使用的时候该文字出现在常用关键字里面,只要轻轻一点就可以搜索了,无需再次输入. 关键字可以动态添加,这就要考虑换行的问题了 废话不多说,先上效果图: 先定义2个自定义属性 <declare-styleable name="linewarplayout"> <attr name="magin" format="integer"

查找子控件和父控件方法

一.查找某种类型的子控件,并返回一个List集合 public List<T> GetChildObjects<T>(DependencyObject obj, Type typename) where T : FrameworkElement        {            DependencyObject child = null;            List<T> childList = new List<T>(); for (int i

在ios中如果按钮的位置超出父视图无法响应.如何处理?

在按钮所在的父视图中重写以下方法. 以下例子中我在父视图外添加了二个按钮callBtn和detailBtn; 以下例子应用场景为.高德地图中的自定义泡泡视图.因为泡泡视图默认添加在大头针视图上.而一般情况下大头针视图的尺寸远远小于泡泡视图导致泡泡视图整个都在大头针视图外.无法响应点击事件. - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { UIView *view = [super hitTest:point with

父控件、子控件

1 每一个控件其实都是一个容器可以将其他控件放到该控件的内部比较常见的还是将UIView作为容器 2 可以将A控件放入B控件A控件是B控件的子控件B控件是A控件的父控件 3 每一个控制器都有一个UIView控制器本身是不可见能够看到的是控制器的View每一个控制器中都一个UIVIew的属性控制器中管理的所有子控件都是该控件的子控件

Qt子控件样式不生效,因为父控件样式设定

在帮助中搜索qt style sheets 找到这句话: If we want the property to apply only to one specific QLineEdit, we can give it a name using QObject::setObjectName() and use an ID Selector to refer to it: 意思是如果不想子控件继承父控件,就在父控件加# if(m_MainWidget.objectName().isEmpty()){

让超出父视图范围的子视图响应事件,在UIView范围外响应点击

//重写该方法后可以让超出父视图范围的子视图响应事件 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {     UIView *view = [super hitTest:point withEvent:event];     if (view == nil) {         for (UIView *subView in self.subviews) {             CGPoint tp = [sub

WPF利用VisualTreeHelper遍历寻找对象的子级对象或者父级对象

简介 本文将完整叙述我利用VisualTreeHelper实现题述功能的全部过程,想直接看函数实现的朋友可以跳到函数实现部分. 或者直接在GitHub上下载源码. 在WPF中我们经常会遇到这种情况:当我们尝试着去寻找窗体或者页面中某个控件的子控件或者父控件的时候,我们只能寻找到它的第一级的逻辑子级对象或者父级对象.当我们想更深入的时候,就没有办法了. 甚至在我们自定义的DataTemplate中的控件,我们都没办法对其访问.比如在ListView中自定义的控件,我们就没办法获取指定位置的控件了.

如果希望点击父控件子控件也响应的话, 可以给子控件加如下属性: ?android:duplicateParentState="true"

如果希望点击父控件子控件也响应的话, 可以给子控件加如下属性: android:duplicateParentState="true" 来自为知笔记(Wiz)