2012-08-07 63 views
0

有關此線程接受的解決方案: How do you shrink a UIPickerView on the iPhone?兩個調整大小的拾取器。一個人失去觸摸輸入

我可以成功地重新大小的選擇器。不過,我在我的控制器中有兩個選擇器。當我爲兩個拾取器執行這個練習時,它們會被重新調整大小,但是當將變換後的UIView添加到主視圖時,其中一個變換後的子視圖會丟失觸摸輸入。總是添加FIRST的子視圖丟失了觸摸輸入。我怎樣才能解決這個問題?

下面是代碼:

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與故事板。

回答

0

上首先加入視圖失去聯繫的原因是,

您具有相同幀的兩個視圖之一是providerPickerTransformView,另一個是amountPickerTransformView

現在amountPickerTransformView低於視圖providerPickerTransformView。所以添加在amountPickerTransformView上的選取器不會觸摸。

您需要調整包含選取器appropriatley的每個視圖的框架。

+0

謝謝你的答案Ishu,幫助我理解:) – PhoenixDev 2012-08-08 09:37:30

0

只需更改第二個視圖的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

CGSizeMake(CGFloat width, CGFloat height) 

這一定會解決您的問題。

編碼快樂:)

+0

的事情是,我用故事板放在採摘。爲了重新調整拾取器的大小,我必須將全尺寸拾取器放在故事板上,並放在一個有趣的位置,以便重新調整拾取器在合適的位置。現在,當我實現您的解決方案時,或者嘗試爲amountPickerTransformView提供除0.0f以外的任何x座標時,它將完全消失。很混亂。 – PhoenixDev 2012-08-08 08:24:17

+0

您是否試圖在代碼中硬編碼寬度代替amountPickerSize.width放置一些硬編碼的值,如250或你想要的東西:)? – 2012-08-08 08:27:18

+0

是的,對於像10.0或20.0這樣的較小值,它是可見的(無觸摸),但對於更大的硬編碼值,它會消失。 – PhoenixDev 2012-08-08 08:40:37