问题标签 [uipickerview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
25179 浏览

ios - 你如何让 UIPickerView 组件环绕?

我想在 UIPickerView 组件中显示一组连续的数字,但让它像 Clock->Timer 应用程序的秒组件一样环绕。我可以启用的唯一行为类似于 Timer 应用程序的小时组件,您只能在一个方向上滚动。

0 投票
12 回答
33447 浏览

iphone - 修复了 UIPickerView 选择栏中的标签

在时钟应用程序中,计时器屏幕显示一个选择器(可能是UIPickerUIDatePickerModeCountDownTimer模式下),在选择栏中带有一些文本(在本例中为“小时”和“分钟”)。

(edit) Note that these labels are fixed : They don't move when the picker wheel is rolling.

有没有办法在标准UIPickerView组件的选择栏中显示这样的固定标签?

我没有找到任何有助于解决此问题的 API。一个建议是添加 aUILabel作为选择器的子视图,但这不起作用。


回答

我听从了 Ed Marty 的建议(下面的答案),它奏效了!不完美,但它应该愚弄人们。作为参考,这是我的实现,请随时改进...

0 投票
5 回答
8287 浏览

objective-c - 在 UIPickerView 而不是 UIView 中响应 touchesBegan

我有一个 UIPickerView 在不使用时会淡出到 20% 的 alpha。我希望用户能够触摸选择器并将其淡入。

如果我在主视图上放置一个 touchesBegan 方法,我可以让它工作,但这仅在用户触摸视图时有效。我尝试对 UIPickerView 进行子类化并在其中设置 touchesBegan,但它没有用。

我猜这与响应者链有关,但似乎无法解决。

0 投票
27 回答
140866 浏览

ios - 如何更改 UIPickerView 高度

是否可以更改 UIPickerView 的高度?一些应用程序的 PickerViews 似乎较短,但设置较小的框架似乎不起作用,并且框架在 Interface Builder 中被锁定。

0 投票
4 回答
12784 浏览

iphone - UIPickerView 中的文本右对齐

如何正确对齐 a 中的文本UIPickerView?我尝试UILabel为行视图制作自定义 s,但由于某种原因,没有显示任何内容,无论是右对齐还是其他。这是我写的:

如果有人想知道,我使用CGRectZero它是因为我在UICatalog示例中看到了它。

0 投票
1 回答
1369 浏览

iphone - 如何在 iPhone 上放大选取器视图?

我在应用程序中的一个视图中添加了一个 PickerView,但它的尺寸太小(高度)。我发现我无法拖动以使其“更长”。那么如何改变它的大小呢?

0 投票
1 回答
1468 浏览

iphone - UIPickerView 如何处理 2+ 个旋转的表盘?

如果我有一个带有三个组件(表盘)的 UIPickerView。拾取器如何处理同时旋转的两个表盘?例如,用户可能轻拂第一个转盘,该转盘自由旋转并立即缓慢点击第二个转盘上的选择。

我正在选择器中执行以下操作。如果一个表盘在旋转,我不会捕捉到它的价值。我只在表盘一次旋转一个时捕获值。

即使两个表盘在旋转,是否有更好的方法来确保捕获值?

0 投票
3 回答
3843 浏览

iphone - selectRow 动画完成后如何从 UIPickerView 获取回调?

我有一个 UIPickerView,我希望在 selectRow 动画完成时收到通知。

我在我的视图控制器中尝试了以下方法,它引用了 UIPickerView 并且它不起作用:

然后在我的代码中的某个地方,我启动了动画:

0 投票
5 回答
28984 浏览

iphone - UIPickerView - 第一行选择不调用 didSelectRow

UIPickerView我有一个UIView和一个UITextField。我让用户从选择器中选择一个值或在文本字段中输入一个自定义值。

当用户从选择器中选择任何选项时,变量值会被很好地更改(在pickerView:didSelectRow:inComponent:)方法中。但是如果用户没有在选择器上选择任何值(因为他们想选择已经选择的第一个选项),则不会调用此方法并且选择不会反映在变量中。

我尝试将变量的默认值设置为选择器中的第一个选项。但在这种情况下,当用户编辑文本字段时,变量将具有文本字段的文本。现在,如果用户决定再次选择第一个值,则新值不会反映在变量中。

我该如何克服呢?谢谢。

这是相关代码

在我viewDidLoad的这个语句中selectText,默认情况下将选择器的第一个选项设置为

textFieldShouldReturn

PickerViewDelegate 的 didSelectRow

当用户编辑文本然后决定他毕竟要使用选择器的第一个值时,就会出现问题。在这种情况下,他们将关闭键盘并单击选择器的第一个选项(已被选中)。此操作不会调用didSelectRow,因此 selectText 的值不会更改。

为了让用户能够更改 的值selectText,他们首先必须从选择器中选择一些其他值,然后选择第一行。

0 投票
6 回答
88886 浏览

objective-c - Select row After UIPickerView is loaded

I have an iPhone database app that loads a UIPickerView with data from a table. I want to set the selected row to a particular row from the data in another table.

For example: Let's say I have a UIPickerView that is loaded with X number of names of the iPhone users' friends (the number of names is variable; it could be 1 or 1000 and all are entered into the database by the user). The iPhone user has a preference set that their current best friend is TED. I want the UIPickerView to be position to TED when displayed.

Where do I call selectRow?

I tried in viewDidAppear, but it was never called, in titleForRow which caused all kinds of strange behavior. viewDidLoad and viewWillAppear are out of the question, because I don't know what's in the datasource to the picker yet.