Swift:显示在屏幕底部的覆盖视图

Swift:显示在屏幕底部的覆盖视图,swift,view,overlay,uialertcontroller,uiactionsheet,Swift,View,Overlay,Uialertcontroller,Uiactionsheet,我想创建一个非常常见的效果,如下图所示: 说明:我想实现的效果是,当用户单击按钮时,屏幕底部会出现一个视图(滑入):您仍然可以看到该视图后面的屏幕,但它在其顶部应用了一个“暗层”(比如说60%不透明度的黑色视图)。当用户单击Block或Report absue(如本例所示)时,它将执行相应的操作。现在,当用户单击“取消”时,以及当他单击“黑暗层”上的任何位置时,都会将他带回屏幕 我尝试的是:展示一个新的视图控制器(但它会使用比需要更多的数据),使用覆盖层,但我甚至没有接近我们通常在应用程序上看

我想创建一个非常常见的效果,如下图所示:

说明:我想实现的效果是,当用户单击按钮时,屏幕底部会出现一个视图(滑入):您仍然可以看到该视图后面的屏幕,但它在其顶部应用了一个“暗层”(比如说60%不透明度的黑色视图)。当用户单击Block或Report absue(如本例所示)时,它将执行相应的操作。现在,当用户单击“取消”时,以及当他单击“黑暗层”上的任何位置时,都会将他带回屏幕

我尝试的是:展示一个新的视图控制器(但它会使用比需要更多的数据),使用覆盖层,但我甚至没有接近我们通常在应用程序上看到的效果。我不确定,但我想说获得这种效果的最好方法是使用视图

有人有主意吗

谢谢,祝你今天愉快


J

您正在寻找一个名为
UIActionSheet
的本地元素。它已成为
UIAlertController
的一部分,并完全满足您的需求

以下是如何设置的一些帮助:

 // Create you actionsheet - preferredStyle: .actionSheet
        let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)

        // Create your actions - take a look at different style attributes
        let reportAction = UIAlertAction(title: "Report abuse", style: .default) { (action) in
            // observe it in the buttons block, what button has been pressed
            print("didPress report abuse")
        }

        let blockAction = UIAlertAction(title: "Block", style: .destructive) { (action) in
            print("didPress block")
        }

        let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (action) in
            print("didPress cancel")
        }

        // Add the actions to your actionSheet
        actionSheet.addAction(reportAction)
        actionSheet.addAction(blockAction)
        actionSheet.addAction(cancelAction)
        // Present the controller
        self.present(actionSheet, animated: true, completion: nil)
它应产生以下输出:


非常感谢您,它非常完美,正是我要寻找的!我要试试那个密码:)干杯!J.@SebastianWeiß我为这个问题添加了额外的标签