2011-02-09 42 views
0

我希望能夠在我的子視圖上繪製,或換句話說:有一個覆蓋不會阻止事件。到目前爲止,我發現: - drawRect中的任何指令都繪製在子視圖下, - 將透明UIView放在頂部的塊事件上。上面的iPhone油漆/覆蓋事件通過

是否有另一個我可以嘗試的技巧?

回答

0

在頂部使用透明UIView,在IB中取消選中該視圖的「用戶交互已啓用」,然後輸入事件將下到您的控件下方。

或者,在代碼中完成:

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

爲了解決這個問題,你要轉發的則hitTest事件。將下面的代碼添加到您的項目中,將UIImageView添加到您的界面中,將其類設置爲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