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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调整UIPickerView,UISwitch等无法通过frame调整大小的大小相关的知识,希望对你有一定的参考价值。

苹果并没有特别邀请具有的默认高度碴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
参考技术A . 看来,苹果并没有特别邀请具有的默认高度碴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

PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。关于如何在 iOS 7 中实现的任何解决方案?

【中文标题】PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。关于如何在 iOS 7 中实现的任何解决方案?【英文标题】:PhoneGap : UIPickerView in iOS 7 does not adjust font size automatically as it does in iOS 6. Any solution for how can I achieve in iOS 7? 【发布时间】:2013-12-24 05:49:05 【问题描述】:

PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。有什么解决方案可以在 iOS 7 中实现吗?

【问题讨论】:

【参考方案1】:

最后添加optgroup 就可以了... :)

<select>
  <option selected="" disabled="">Select a value</option>
  <option>Grumpy wizards make toxic brew for the evil Queen and Jack</option>
  <option>Quirky spud boys can jam after zapping five worthy Polysixes</option>
  <option>The wizard quickly jinxed the gnomes before they vaporized</option>
  <option>All questions asked by five watched experts amaze the judge</option>
  <optgroup label=""></optgroup>
</select>

【讨论】:

【参考方案2】:

检查这个:- UIKitUICatalog/UIPickerView

You cannot customize the appearance of picker views.

但是您可以选择其他方法。您可以在此委托方法中返回自定义 UILabel:-

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

UILabel *label = [[UILabel alloc] init];
// Set frame, font color, font size, text, etc properties here.
return label;


【讨论】:

这是关于PhoneGap的,其中HTML“ 好的。我认为 PhoneGap 方法与 iOS 方法相同,因为它们都使用相同的 IDE,即 Xcode。

以上是关于如何调整UIPickerView,UISwitch等无法通过frame调整大小的大小的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。关于如何在 iOS 7 中实现的任何解决方案?

调整 UIPickerView 的大小

调整 UIPickerView 中选择指示器的高度

在 UIAlertView 中调整 UIPickerView 的大小

如何更改 UIPickerView 中的字体大小?

如何获取 UIPickerView 中组件的位置?