0

对于此线程上公认的解决方案: 如何在 iPhone 上缩小 UIPickerView?

我可以成功地重新调整选择器的大小。但是我的控制器中有两个选择器。当我对两个选择器进行练习时,它们会重新调整大小,但是当将转换后的 UIView 添加到主视图时,转换后的子视图之一会丢失触摸输入。丢失触摸输入的总是首先添加的子视图。我怎样才能解决这个问题?

这是代码:

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

失去联系的第一个添加视图的原因是,

您有两个相同框架的视图,一个是providerPickerTransformView,另一个是amountPickerTransformView

现在 amountPickerTransformView 在视图下方providerPickerTransformView。所以选择器增加了amountPickerTransformView不触摸。

您需要每个视图的调整框架,其中包含Picker Arpropriatley。

于 2012-08-07T05:29:24.893 回答
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)

这肯定会解决你的问题。

快乐编码:)

于 2012-08-07T05:41:26.877 回答