我希望能夠在我的子視圖上繪製,或換句話說:有一個覆蓋不會阻止事件。到目前爲止,我發現: - drawRect中的任何指令都繪製在子視圖下, - 將透明UIView放在頂部的塊事件上。上面的iPhone油漆/覆蓋事件通過
是否有另一個我可以嘗試的技巧?
我希望能夠在我的子視圖上繪製,或換句話說:有一個覆蓋不會阻止事件。到目前爲止,我發現: - drawRect中的任何指令都繪製在子視圖下, - 將透明UIView放在頂部的塊事件上。上面的iPhone油漆/覆蓋事件通過
是否有另一個我可以嘗試的技巧?
在頂部使用透明UIView,在IB中取消選中該視圖的「用戶交互已啓用」,然後輸入事件將下到您的控件下方。
或者,在代碼中完成:
UIView *overlayView = [[UIView alloc] init...];
overlayView.userInteractionEnabled = NO;
爲了解決這個問題,你要轉發的則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