iphone画在顶部/覆盖与事件通过

时间:2011-02-09 15:46:31

标签: iphone ipad ios

我希望能够在我的子视图上绘画,或者换句话说:拥有一个不会阻挡事件的叠加层。到目前为止,我发现: - drawRect中的任何指令都绘制在子视图下方, - 在顶部块事件上放置透明的UIView。

我可以尝试另一种技巧吗?

2 个答案:

答案 0 :(得分:0)

在顶部使用透明的UIView,并在IB中取消选中该视图的“User Interaction Enabled”,然后输入事件将转到其下方的控件。

或者,在代码中执行:

UIView *overlayView = [[UIView alloc] init...];
overlayView.userInteractionEnabled = NO;

答案 1 :(得分:0)

要解决此问题,您需要转发hitTest事件。将下面的代码添加到您的项目中,将UIImageView添加到您的界面,将其Class设置为ClickThroughImageView并将“onTopOf”插座连接到图像下方的任何UIView。

ClickThroughImageView.h文件:

  #import <Foundation/Foundation.h>


    @interface ClickThroughImageView : UIImageView 
    {
        IBOutlet UIView *onTopOf;     
    }

    @property (nonatomic, retain) UIView *onTopOf;

    @end

ClickThroughImageView.m文件

#import "ClickThroughImageView.h"


@implementation ClickThroughImageView : UIImageView
@synthesize onTopOf;


- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    return [onTopOf hitTest:point withEvent:event];
}

@end