HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 如何在他的父uiview之外部分访问uiview子视图?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下UIVIew架构(x,y,宽度,高度):

- MainWindow (0,768,1024)
    - MainView (0,80) 
        - containerview (500,40,120,80)
            - subview (500,80) 
                -some buttons

我的问题是子视图的底部位于MainView的边界之外.子视图底部的按钮没有响应.顶部的那个是响应式的,因为它们的位置也在Mainview内部.

因此,当我尝试单击子视图底部的按钮时,我实际上点击了MainWindow!子视图底部按钮的位置不在MainView内部

有没有办法让我的所有子视图都可用,即使它的一半在MainView界限之外?

我知道我可以直接在R_173_11845@ainWindow下创建子视图,但我不想重做我的代码.

更新
这里如何设计我的观点:
A = MainWindow,B = MainView,C =容器视图,D =子视图,X =我要点击的位置

+----------------------------+
|A                           |
|+-------------------------+ |
||B                        | |
||            +----------+ | |
|+------------|C&d       |-+ |
|             |X         |   |
|             +----------+   |
+----------------------------+

谢谢

解决方法

您需要在MainView中实现hitTest:(CGPoint)指向withEvent:(UIEvent *)事件.

See the documentation

发表评论

你应该继承UIView.然后将nib中的MainView类设置为UIView子类.

Some hittesting is discussed here,但我无法找到它的工作原理.

Try this StackOverflow question

我没有测试过,但以下代码可能会满足您的需求:

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    for(UIView *subview in self.subviews)
    {
        UIView *view = [subview hitTest:[self convertPoint:point toView:subview] withEvent:event];
        if(view) return view;
    }
    return [super hitTest:point withEvent:event];
}

大佬总结

以上是大佬教程为你收集整理的iphone – 如何在他的父uiview之外部分访问uiview子视图?全部内容,希望文章能够帮你解决iphone – 如何在他的父uiview之外部分访问uiview子视图?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。