我要求在我的应用程序中使用日期选择器。 我的视图中有很多控件,我无法使用默认大小添加日期选择器。 任何人都可以建议我如何减少选择器的大小? 我尝试使用Ib,但在IB中禁用了尺寸选项吗?
答案 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上的键盘相同的尺寸。