私は正常に動作しているこのスキームを持っています( -->
= "サブビューがあります"):
ViewController.view --> imageView --> containerView --> UIButton
予想どおり、ボタンは指定されたセレクターを起動します。
ただし、次のことを行うと(いくつかの理由で望ましい)、ボタンは touches の受信を停止します。
ViewController.view --> imageView
ViewController.view --> containerView --> UIButton
[self.view bringSubviewToFront:_containerView];
手がかりはありますか?
- アップデート
リクエストに応じて、ボタン作成コードをいくつか示します。
// in viewDidLoad
_controlsView = [[[NSBundle mainBundle] loadNibNamed:@"Controls"
owner:self options:nil] objectAtIndex:0];
_controlsView.frame = CGRectMake(0, 50,
_controlsView.bounds.size.width, _controlsView.bounds.size.height);
[self.view addSubview:_controlsView];
// ...
[_controlsView.superview bringSubviewToFront:_controlsView];
// in viewDidAppear
if (!_demoButton) {
_demoButton = (UIButton*)[_controlsView viewWithTag:kDemoButtonTag];
[_demoButton addTarget:self action:@selector(buttonPressed:)
forControlEvents:UIControlEventTouchUpInside];
// configuration, color, font, layer, etc. all works well
}
最後に、Controls.xib
次のようになります。