2012-08-07 65 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