使用UILabels和UITableViewCell创建自定义UIActionSheet / UIView

时间:2013-10-11 18:22:21

标签: ios objective-c uitableview uiview uiactionsheet

正如标题所说,我想创建一个自定义的UIActionSheet / UIView,里面有一些对象,如标签,按钮,表格视图单元格等。我想复制它:http://i.imgur.com/cPPDTeV.png

我猜这是一个定制的UIActionSheet,他们在buttonAtIndex中添加了标签和图像,或者他们继续前进并做了一个自定义UIView和动画从底部到页面顶部。无论哪种方式,可以指导我通过这样的事情吗?任何建议,代码,网站链接或指导将不胜感激。

3 个答案:

答案 0 :(得分:3)

在iOS7上,您可以使用UIModalPresentationCustom和transitioningDelegate在UIKit中使用新的自定义模态转换支持轻松实现此目的。

使用这些,您可以创建一个视图控制器,其视图设置为显示所需内容,然后在转移委托对象中显示您选择的动画。

此处提供更多信息:https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewControllerTransitioningDelegate_protocol/Reference/Reference.html#//apple_ref/occ/intf/UIViewControllerTransitioningDelegate

您可以在此处找到有关如何使用转换委托的很好示例: https://github.com/ColinEberhardt/VCTransitionsLibrary

答案 1 :(得分:1)

对我来说看起来像是一个自定义的UIView。您可以在IB中以编程方式进行查看。就复制动画而言,这可能对您有所帮助:

http://www.cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html

本教程从上到下显示,但您应该可以切换值。使用可以在这里学到的块来学习UIView动画会很好:

http://www.raywenderlich.com/2454/uiview-tutorial-for-ios-how-to-use-uiview-animation

答案 2 :(得分:0)

您要做的事情100%是要求自定义UIView。

您有2个常规实施选项:

  1. 在当前视图的顶部创建另一个视图,然后根据需要为其设置动画,并让当前的UIViewController充当它的控制器。

  2. 创建一个单独的UIViewController来处理与该视图的交互。正如Leo所提到的,有一个iOS 7 API可用于想要呈现其他视图控制器的视图控制器的自定义转换。你应该知道这个API有点复杂,一开始可能会让人困惑。但是,它可能是实现您在图片中呈现的外观的最佳方式。

  3. 如果您使用全屏封面,请继续并跳过自定义模型转换并使用新视图控制器的modalPresentationStyle属性下的UIModalPresentationFullScreen选项。