基本的にクリック可能な (タッチ可能な) 領域を持つ画像を含むサードパーティの UIView を表示しようとしています。たとえば、クリックするとWebページが起動するリージョンが含まれています。このUIViewを全画面表示するUIViewControllerを作成しました。画像の幅と高さはわかっているので、このビューを全画面に合わせて拡大縮小する必要があります。
これが私の問題です。画像を拡大縮小しようとすると、サブビューのクリック可能な領域がクリックできなくなります。
スケーリングを行う方法は次のとおりです。
float scalingFactor = (adAspectRatio > deviceAspectRatio) ? deviceWidth / adWidth : deviceHeight / adHeight;
float scaledWidth = adWidth * scalingFactor;
float scaledHeight = adHeight * scalingFactor;
adFrame = CGRectMake((deviceWidth - scaledWidth) / 2.0f, (deviceHeight - scaledHeight) / 2.0f, adWidth, adHeight);
thirdpartyview.transform = CGAffineTransformScale(CGAffineTransformIdentity, scalingFactor, scalingFactor);
[thirdpartyview setFrame:adFrame];
...
[self.view addSubview:thirtpartyview];
変換を行うと、すべてのタッチがそのサブビューではなく、ビュー コントローラーに移動するようになりました。今は何もクリックできません。変換を行わない場合、または変換を行っても ID を使用すると、すべてが機能しますが、希望どおりにスケーリングされません。変換すると、正しくスケーリングされますが、タッチが機能しません。
ビュー コントローラーでタッチを検出しようとすると、タッチ イベントを受け取ることができます。しかし、タッチ イベントをサードパーティ ビューに転送する方法がわかりません。
助言がありますか?