如何在UIActionSheet中创建UIPickerView

4

我想知道如何使用一个简单的数组在UIActionSheet中创建UIPickerView。


好的,我已经找到了如何将它放入操作表中,但我更喜欢您的方法,因为它更适用于我的应用程序,谢谢。但是我还想知道如何将选项放入UIPickerView中,我卡在了这一部分。 我已经有了一个包含颜色(红色、绿色、蓝色、黄色、黑色等)的数组,但如果我已经使用了initWithFrame:,我想知道如何将其放入pickerview中。请任何人帮忙,我知道这是个愚蠢的问题,但我正在摆弄我的$$$$$$ Macbook。

1个回答

14

你不想这样做。相反地,你应该在Interface Builder中创建你的UIPickerView并将其连接到你的视图控制器中的一个Outlet。将它添加为主视图的子视图,并设置它的帧坐标,使它在底部边缘下方屏幕外,x=0,y=480。

然后,当你想要显示选择器时,使用类似以下的动画将其移入屏幕:

[UIView beginAnimations:nil context:NULL];
[colorPicker setFrame:CGRectMake(0.0f, 416.0f, 320.0f, 216.0f)];
[UIView commitAnimations];

然后使用以下代码在完成选择后隐藏它:

[UIView beginAnimations:nil context:NULL];
[colorPicker setFrame:CGRectMake(0.0f, 480.0f, 320.0f, 216.0f)];
[UIView commitAnimations];

这将使你的选择器从底部滑出并带有动画效果,完成后会向下滑回。

我认为如果可能的话,将选择器添加到UIActionSheet中是不可取的。


3
Matt - 尽管这种方法运行良好,但它依赖于在屏幕其他地方添加一个用于关闭选择器的按钮(例如在导航栏上)。但如果选择器位于操作表中,则可以“自包含”以进行关闭。 - dermdaly
我正在考虑在选择器上方添加一个完成按钮;这是一个有用的链接:https://dev59.com/iHM_5IYBdhLWcg3wt1g0 - petert
6
现在这并不是最佳的做法了。可能需要获取屏幕的尺寸而不是硬编码 Y 值。 - ninjaneer
我同意,@Ninja。有了新的屏幕尺寸,现在应该更加动态了。 - Matt Long
同意以上评论。这段代码很脆弱且没有很好的封装。 - memmons
我不建议这样做,因为用户仍然可以在屏幕上的任何地方触摸,而UIActionSheet会禁用其他所有功能。 - Vaibhav Saran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接