如何在iPhone应用程序中更改日期选择器的大小?

时间:2010-03-12 08:39:37

标签: iphone iphone-sdk-3.0

我要求在我的应用程序中使用日期选择器。 我的视图中有很多控件,我无法使用默认大小添加日期选择器。 任何人都可以建议我如何减少选择器的大小? 我尝试使用Ib,但在IB中禁用了尺寸选项吗?

5 个答案:

答案 0 :(得分:4)

您可以通过更改DatepIcker的框架来更改日期选择器的大小,但这会剪切大部分日期选择器并且不是一个好主意。尝试在模态视图中添加日期选择器。

答案 1 :(得分:3)

如果您在代码中创建了UIPickerView,那么您可以使用-initWithFrame明确设置其框架(请参阅this question) - 在提供的答案中说明了一些“视觉故障”可能出现这种方法。

作为第二个选项,您可以通过对其应用适当的CGAffineTransform来调整选择器的框架(我没有对它进行过多测试,但似乎工作正常):

picker.transform = CGAffineTransformMake(0.5, 0, 0, 0.5, -80, 0);

这个(有些虚拟的)代码将UIPickerView缩放到一半大小并应用转换将拾取器放置在屏幕的左侧。您可以使用不同的变换值来获得所需的效果。

修改:上面的代码也适用于UIDatePickerView(抱歉没有注意到问题)。但正如其他声明的苹果公司没有使拣货员的框架(轻松)可定制,所以这可能意味着你应该考虑改变你的设计,试图使用适当尺寸的拣货机,以符合苹果公司的HIG。

答案 2 :(得分:2)

据我所知,你做不到。

答案 3 :(得分:1)

在viewDidLoad方法中使用Picker视图的setFrame:(CGRect)inRect API。但我不知道你是否可以调整DatePicker的大小!!!“

答案 4 :(得分:1)

您可以使用CGAffineTransform更改选择器视图的大小。 创建一个新的UIView并应用转换。然后将选择器视图添加到新的UIView。然后将其添加到主视图中。

UIView* transformView = [[UIView alloc] initWithFrame:CGRectMake(75.0f, 344.0f, self.pickerView.frame.size.width, self.pickerView.frame.size.height)];
    transformView.transform = CGAffineTransformMakeScale(0.60f, 0.60f);
    [transformView addSubview:self.pickerView];
    [self.view addSubview:transformView]; 

但根据Apple的文档,

选择器是日期选择器的通用版本。与日期选择器一样,用户旋转拾取器的轮子(或轮子)直到他们想要的值出现。拾取器的整体尺寸(包括其背景)固定为与iPhone上的键盘相同的尺寸。

链接:https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW1