如何调整UIPickerView,UISwitch等无法通过frame调整大小的大小

2024-10-28 13:47:24
推荐回答(2个)
回答(1):

苹果并没有特别邀请具有的默认高度碴UIPickerView,但我发现,就可以实现由控制和传递所需的大小在创建如视图的高度发生变化:smallerPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 120.0)];你会发现,在高度和宽度,也有visual毛刺。这些毛刺会要么需要被解决,或选择不会表现出他们另一个大小。
2. 概无上述方法中的iOS 4.0工作 该pickerView的高度不再重新可观。有哪些被抛弃 CodeGo.net,如果你试图改变一个选择器在4.0到控制台: -[UIPickerView setFrame:]: invalid height value 66.0 pinned to 162.0

最后我做相当激进,以获得更小的选择器在这两个操作系统的3.xx和OS 4.0的工作效果。我离开了选择器是不论大小的SDK的决定应该,而是对我的背景图片做了一个直通的透明窗口,通过了拾取可见。然后,只需放在后面的选择器(Z顺序明智的)我的背景的UIImageView,这样的选择器中只有一部分是由透明窗口,我的背景决定可见。
3. 在IOS 4.2及4.3以下工作: UIDatePicker *datePicker = [[UIDatePicker alloc] init];
datePicker.frame = CGRectMake(0, 0, 320, 180);
[self addSubview:datePicker];

以下不工作: UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, 320, 180)];
[self addSubview:datePicker];

我有一个应用程序,在应用程序商店有3行日期选择器。我想的高度变化可能是可以避免你看到的日期选择器的下边框的文本,但这种情况在正常的216身高日期选择器了。 这是错误吗?你的猜测是和我一样好。 也有3个有效高度为UIDatePicker(和UIPickerView)162.0,180.0,216.0和。如果设置了UIPickerView高度以其他任何你会在控制台看到以下内容的iOS设备上调试时。 2011-09-14 10:06:56.180 DebugHarness[1717:707] -[UIPickerView setFrame:]: invalid height value 300.0 pinned to 216.0

4. 只有三对UIPickerView的有效高度(162.0,180.0和216.0)。 你的CGAffineTransformMakeTranslation和CGAffineTransformMakeScale函数,使其适合的选择器来方便您使用。 例如: CGAffineTransform t0 = CGAffineTransformMakeTranslation (0, pickerview.bounds.size.height/2);
CGAffineTransform s0 = CGAffineTransformMakeScale (1.0, 0.5);
CGAffineTransform t1 = www.hnnedu.com CGAffineTransformMakeTranslation (0, -pickerview.bounds.size.height/2);
pickerview.transform = CGAffineTransformConcat (t0, CGAffineTransformConcat(s0, t1));

上面的代码更改选择器以一半和重新定位它的确切(左X1,顶Y1)位置的高度。
5. 尝试: pickerview.transform = CGAffineTransformMakeScale(.5, 0.5);

6. 我发现,你可以编辑UIPickerView的大小-只是不能与界面生成器。用文本编辑器打开。xib文件和设置选择器视图的大小到任何你想要的。界面生成器不会重设大小,它似乎工作。我敢肯定,苹果锁定的大小是有原因的,所以你必须以不同的大小,看看是什么在起作用。
7. 产品优点: 使得UIPickerView像它应该 没有在你的代码转换UIViewController在工作viewWillLayoutSubviews重新缩放/定位UIPickerView作品在iPad上没有UIPopover超总是收到有效高度 工作与iOS 5 缺点: 需要你继承UIPickerView需要的pickerView viewForRow撤消转型为子视图 UIAnimations可能无法正常工作 解决方案: 子类UIPickerView的并覆盖使用下面的代码。子类,固定的高度和转换方法。 #define FIXED_PICKER_HEIGHT 216.0f
- (void) setFrame:(CGRect)frame
{

回答(2):

. 看来,苹果并没有特别邀请具有的默认高度碴UIPickerView,但我发现,就可以实现由控制和传递所需的大小在创建如视图的高度发生变化:smallerPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 120.0)];你会发现,在高度和宽度,也有visual毛刺。这些毛刺会要么需要被解决,或选择不会表现出他们另一个大小。
2. 概无上述方法中的iOS 4.0工作 该pickerView的高度不再重新可观。有哪些被抛弃 CodeGo.net,如果你试图改变一个选择器在4.0到控制台: -[UIPickerView setFrame:]: invalid height value 66.0 pinned to 162.0

最后我做相当激进,以获得更小的选择器在这两个操作系统的3.xx和OS 4.0的工作效果。我离开了选择器是不论大小的SDK的决定应该,而是对我的背景图片做了一个直通的透明窗口,通过了拾取可见。然后,只需放在后面的选择器(Z顺序明智的)我的背景的UIImageView,这样的选择器中只有一部分是由透明窗口,我的背景决定可见。
3. 在IOS 4.2及4.3以下工作: UIDatePicker *datePicker = [[UIDatePicker alloc] init];
datePicker.frame = CGRectMake(0, 0, 320, 180);
[self addSubview:datePicker];

以下不工作: UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, 320, 180)];
[self addSubview:datePicker];

我有一个应用程序,在应用程序商店有3行日期选择器。我想的高度变化可能是可以避免你看到的日期选择器的下边框的文本,但这种情况在正常的216身高日期选择器了。 这是错误吗?你的猜测是和我一样好。 也有3个有效高度为UIDatePicker(和UIPickerView)162.0,180.0,216.0和。如果设置了UIPickerView高度以其他任何你会在控制台看到以下内容的iOS设备上调试时。 2011-09-14 10:06:56.180 DebugHarness[1717:707] -[UIPickerView setFrame:]: invalid height value 300.0 pinned to 216.0

4. 只有三对UIPickerView的有效高度(162.0,180.0和216.0)。 你的CGAffineTransformMakeTranslation和CGAffineTransformMakeScale函数,使其适合的选择器来方便您使用。 例如: CGAffineTransform t0 = CGAffineTransformMakeTranslation (0, pickerview.bounds.size.height/2);
CGAffineTransform s0 = CGAffineTransformMakeScale (1.0, 0.5);
CGAffineTransform t1 = www.hnnedu.com CGAffineTransformMakeTranslation (0, -pickerview.bounds.size.height/2);
pickerview.transform = CGAffineTransformConcat (t0, CGAffineTransformConcat(s0, t1));

上面的代码更改选择器以一半和重新定位它的确切(左X1,顶Y1)位置的高度。
5. 尝试: pickerview.transform = CGAffineTransformMakeScale(.5, 0.5);

6. 我发现,你可以编辑UIPickerView的大小-只是不能与界面生成器。用文本编辑器打开。xib文件和设置选择器视图的大小到任何你想要的。界面生成器不会重设大小,它似乎工作。我敢肯定,苹果锁定的大小是有原因的,所以你必须以不同的大小,看看是什么在起作用。
7. 产品优点: 使得UIPickerView像它应该 没有在你的代码转换UIViewController在工作viewWillLayoutSubviews重新缩放/定位UIPickerView作品在iPad上没有UIPopover超总是收到有效高度 工作与iOS 5 缺点: 需要你继承UIPickerView需要的pickerView viewForRow撤消转型为子视图 UIAnimations可能无法正常工作 解决方案: 子类UIPickerView的并覆盖使用下面的代码。子类,固定的高度和转换方法。 #define FIXED_PICKER_HEIGHT 216.0f
- (void) setFrame:(CGRect)frame
{