如何为iphone应用程序创建下拉列表框

如何为iphone应用程序创建下拉列表框,iphone,Iphone,我需要为iphone应用程序添加下拉列表框。我在图书馆里找不到这个东西。取而代之的是选择器视图,但我需要像下拉列表框这样的紧凑对象。请建议我如何添加或创建此 提前感谢。通常,您会看到UIActionSheet,如下所示 或另一个带有选项的视图幻灯片。这取决于你有一个小的有限数,还是一个长的或无界的列表。不存在这样的东西。您可以创建自己的控件,也可以使用UIPicker。与使用选取器相比,创建您自己的下拉控件是一项相当艰巨的工作,除非特定控件是任务关键型的,否则我建议您了解如何在现有设计中使用U

我需要为iphone应用程序添加下拉列表框。我在图书馆里找不到这个东西。取而代之的是选择器视图,但我需要像下拉列表框这样的紧凑对象。请建议我如何添加或创建此


提前感谢。

通常,您会看到UIActionSheet,如下所示


或另一个带有选项的视图幻灯片。这取决于你有一个小的有限数,还是一个长的或无界的列表。

不存在这样的东西。您可以创建自己的控件,也可以使用UIPicker。与使用选取器相比,创建您自己的下拉控件是一项相当艰巨的工作,除非特定控件是任务关键型的,否则我建议您了解如何在现有设计中使用UIPicker。它不仅已经存在,而且用户已经熟悉并知道如何使用它。确实有一个指向人机界面的指导原则和一组标准的UI元素

在一些情况下,我需要在一小部分空间中使用类似选择器的控件,我使用了一个标签和一个按钮来显示包含选择器的另一个视图。您可以使用UINavigationController将其滑入,或者仅以模式显示视图。这就是我通常看到的应用程序处理这个问题的方式

编辑:或者像@Lou Franco说的那样使用UIActionSheet。这也是一个很好的选择。

1)创建一个文本字段并将其设置为禁用

2) 文本字段附近添加一个带有arraw图像的按钮

3) 创建一个视图,该视图将有一个带有两个按钮的工具栏@“完成”,取消。将此工具栏设置为“视图”,然后添加一个pickerview。将图幅y位置设置为大于设备高度

  • 现在打开按钮操作应用动画以从下到上显示视图(显示选择器视图)

  • 在“完成”和“取消”按钮上再次应用动画以从上到下显示视图(隐藏视图)


  • 您可以创建自定义视图,如操作表或警报视图。我做了一个自定义视图,比如警报视图。它将显示在中间,并阻止任何触摸它后面。并提供一个在UIScrollView上绘制的列表按钮,供用户选择所需的选项。

    iOS框架中可能不存在紧凑列表视图的原因是,它们可能太难用胖手指使用。用户的手指将阻止多个选择,因此他们在选择时看不到任何选择,并且由于目标太小,他们将命中错误的选择

    动作表和选取器视图为即使是胖手指也提供了漂亮的大手指大小的目标,并且提供了一种滚动较大的选择目标的方法,如果有更多的选择,则这些选择目标将离开屏幕

    如果您可以创建一个可以处理所有这些问题的自定义弹出视图,那么您可以滚动自己的控件

    -(IBAction)dropButtonAction
    
    {

    }


    这里的“dropView”是UIViewController。

    这里是另一种选择。如果你仔细想想,行动表基本上是一个下拉列表。如果你一直在UIActionSheet中添加按钮,它最终会变成一个表。所以只要有一个UIButton(或某个事件)触发UIActionSheet


    尝试向UIActionSheet添加7个或更多按钮,并观察它变成一个列表。很方便。

    嗨,丹,谢谢你的回复。我会试试的。你好,楼,谢谢你的回复。我会试试的。你也可以在
        if(dropBtnFlag==TRUE){
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        [dropView setFrame:CGRectMake(121,122,179,122)];
        [UIView commitAnimations];
        dropFlag=FALSE; 
    }
    else {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        [dropView setFrame:CGRectMake(121,122,179,0)];
        [UIView commitAnimations];
        dropFlag=TRUE;
    }