หากมุมมองที่คุณต้องการส่งต่อการสัมผัสไม่ได้เป็นมุมมองย่อย / ซูเปอร์วิวคุณสามารถตั้งค่าคุณสมบัติที่กำหนดเองในคลาสย่อย UIView ของคุณได้ดังนี้:
@interface SomeViewSubclass : UIView {
id forwardableTouchee;
}
@property (retain) id forwardableTouchee;
อย่าลืมสังเคราะห์ใน. m ของคุณ:
@synthesize forwardableTouchee;
จากนั้นรวมสิ่งต่อไปนี้ในวิธีการ UIResponder ของคุณเช่น:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.forwardableTouchee touchesBegan:touches withEvent:event];
}
เมื่อใดก็ตามที่คุณสร้างอินสแตนซ์ UIView ของคุณให้ตั้งค่าคุณสมบัติ forwardableTouchee เป็นมุมมองใดก็ได้ที่คุณต้องการให้ส่งต่อเหตุการณ์ไปที่:
SomeViewSubclass *view = [[[SomeViewSubclass alloc] initWithFrame:someRect] autorelease];
view.forwardableTouchee = someOtherView;