0

このスレッドで受け入れられた解決策: iPhone で UIPickerView を縮小するにはどうすればよいですか?

ピッカーのサイズを正常に変更できます。ただし、コントローラーには2つのピッカーがあります。両方のピッカーの演習を実行すると、サイズが変更されますが、変換された UIView をメイン ビューに追加すると、変換されたサブビューの 1 つでタッチ入力が失われます。タッチ入力を失うのは、常に最初に追加されたサブビューです。どうすればこれを修正できますか?

コードは次のとおりです。

CGSize providerPickerSize = [providerPickerOutlet sizeThatFits:CGSizeZero];
CGSize amountPickerSize = [amountPickerOutlet sizeThatFits:CGSizeZero];

UIView *providerPickerTransformView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, providerPickerSize.width, providerPickerSize.height)];
UIView *amountPickerTransformView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, amountPickerSize.width, amountPickerSize.height)];

providerPickerTransformView.transform = CGAffineTransformMakeScale(0.75f, 0.75f);
amountPickerTransformView.transform = CGAffineTransformMakeScale(0.75f, 0.75f);

[providerPickerTransformView addSubview:providerPickerOutlet];
[amountPickerTransformView addSubview:amountPickerOutlet];

[self.view addSubview:amountPickerTransformView];
[self.view addSubview:providerPickerTransformView];

ここで amountPickerTransformView はタッチ入力を失います。

XCode 4.3、ストーリーボード付き iOS 5 を使用。

4

2 に答える 2

0

2 番目のビューの x と y を変更するだけです。つまり、必要なビューを最初のビューの左側に変更します。以下のように

UIView *providerPickerTransformView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, providerPickerSize.width, providerPickerSize.height)];
UIView *amountPickerTransformView = [[UIView alloc] initWithFrame:CGRectMake(providerPickerSize.width, 0.0f, amountPickerSize.width, amountPickerSize.height)];

ハッピーコーディング:)

編集1

あなたのコードで見つけることができる問題は

CGSize providerPickerSize = [providerPickerOutlet sizeThatFits:CGSizeZero];
CGSize amountPickerSize = [amountPickerOutlet sizeThatFits:CGSizeZero];

CGSizeZeroこれらの2行を次のように置き換えます

CGSizeMake(CGFloat width, CGFloat height)

これは間違いなくあなたの問題を解決します。

ハッピーコーディング:)

于 2012-08-07T05:41:26.877 に答える
0

最初に追加されたビューに触れなくなった理由は、

同じフレームの 2 つのビューがあり、一方はproviderPickerTransformViewで、もう一方はamountPickerTransformViewです。

今 amountPickerTransformView はビューの下にありますproviderPickerTransformViewamountPickerTransformViewタッチしないように追加するピッカー。

ピッカーを適切に含む各ビューのフレームを調整する必要があります。

于 2012-08-07T05:29:24.893 に答える