iOS 利用模态视图实现带黑色蒙版的底部弹窗

本demo仅适用于iOS8及以上系统。

本文将使用autolayout+storyboard来实现弹窗

第一步、storyboard创建界面

1、打开storyboard 拖一个UIViewcontroller出来,并与class相关联

2、拖出一个UIView作为弹窗视图的容器,容器里放置弹窗的内容,容器高度根据具体需求放置。容器放在最底部

3、放置一个UIButton在容器View的上方间距为0,并把UIButton设置为黑色(用于实现蒙版效果及点击空白处关闭弹窗)

4、约束。底部容器打left、right、bottom、height这个约束。UIButton打 left、right、top、bottom约束 如图

底部容器约束

UIButton约束

5、约束。将底部容器的bottom约束编辑修改 如图

修改容器bottom约束

修改容器bottom约束

修改容器bottom约束

6、找到底部容器的bottom约束拉线到对应的UIViewController 如图

拉线

第二步、设置蒙版及弹窗动画

1、修改UIButton的透明度并把UIViewController的View的背景色设置为透明 如图

设置透明度

2、实现弹窗动画,在viewDidAppear中实现,这样才可以看到整个动画过程 如图

修改约束

3、弹出模态视图 如图

模态视图

几个属性的解释

解释内容摘至博客园 不打扰是我的温柔 http://www.cnblogs.com/SenDylan/p/3953832.html

providesPresentationContextTransitionStyle

definesPresentationContext

modalPresentationStyle

部分类容读起来怪怪的,不清楚是不是翻译软件的原因。

4、关闭弹窗

关闭弹窗

最后来个演示gif 和 demo

demo下载

时间: 2024-09-03 11:39:44

iOS 利用模态视图实现带黑色蒙版的底部弹窗的相关文章

通知模式实现两个textField传值及模态视图——iOS开发

通知模式实现两个textField传值及模态视图--iOS开发 利用通知模式,实现两个不同界面的textField之间的传值,在界面二输入字符,传值到前一界面的textField. 界面的切换,这里临时先用模态视图实现.(重点在传值.所以没纠结设计界面排版.丑了点大家见谅) 大家不要看代码看上去好像挺多.由于我没使用storyboard/xib,是代码实现布局,所以通知和模态视图切换的代码非常少~ 实现效果: 点击下一页按钮,进入界面二: 在textField处输入字符串: 点击返回按钮,回到界

iOS UI-视图控制器的生命周期、加载方法和模态视图方法

1 #import "ViewController.h" 2 #import "SecondViewController.h" 3 4 @interface ViewController () 5 6 @end 7 8 @implementation ViewController 9 10 11 // 视图控制器的生命周期 12 // 视图控制器的加载方法 13 // 模态视图方法 14 15 /* 16 // 视图控制器的加载方法 17 - (instancety

模态视图(IOS开发)

模态:模态视图从屏幕下方滑出来,完成的时候需要关闭这个模态视图,如果不关闭,就不能做别的事情,必须有响应处理的含义. 主视图控制器--->模态视图控制器.主视图控制器与模态视图控制器之间为父子关系. UIViewController类中,主要有以下两个方法: presentViewController:animated:completion  呈现模态视图 dismissViewControllerAnimated:completion 关闭模态视图 代码: ViewController.h #

iOS模态视图

//模态视图(临时弹出使用)    GreenViewController *green=[[GreenViewController alloc] init];    green.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;        [self presentViewController:green animated:YES completion:nil]; -(void)buttonAction:(UIButton*

iOS开发 - 在SwiftUI中显示模态视图

在SwiftUI中显示模态视图 简介 这里教大家如何弹出一个简单的模态视图.分别有两个页面,ContentView和GCPresentedView,以下对应简称为A和B.我们要做的是在A视图中点击按钮跳转到B视图,然后再从B视图点击按钮返回到A视图. 步骤 在A视图中创建按钮和模态视图代码 struct ContentView: View { @State var isPresented = false var body: some View { Button(action: { self.is

iOS开发系列--视图切换

概述 在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单.在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController UINavigationController 模态窗口 UITabBarController iOS三种视图切换的原理各不相同: UITabBarController:以平行的方式管理视图,各个视图之间往往关系并不大,每个加入到UITabBarController的视图都会进行初始化即使当前不显示在

IOS的模态窗口(modal)

在iOS开发中,除了使用push方法切换控制器以外,modal也可以实现界面切换,使用modal方便快捷,任何控制器都可以使用modal展示出来,开发中在设置注册,购物车,点赞等小功能的时候可以使用. 首先我们简单了解下ViewController之间的跳转 1.如果在 Storyboard中当前的 ViewController和要跳转的ViewController之间的segue存在,则可以执行performSegueWithIdentifier:sender:这个方法实现跳转.2.如果目标V

视图控制器和导航模式一(模态视图,平铺导航)

视图控制器的种类 UIViewController.用于自定义视图控制器的导航.例如,对于两个界面的跳转,我们可以用一个UIViewController来控制另外两个UIViewController. UINavigationController.导航控制器,它与UITableViewController结合使用,能够构建树形结构导航模式. UITabBarController.标签栏控制器,用于构建树标签导航模式. UIPageViewController.呈现电子书导航风格的控制器 UISp

如何利用 Visual Studio 自带工具提高开发效率

原文:如何利用 Visual Studio 自带工具提高开发效率 Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言 2. 勾选 "行号" 使用书签 和平常意义的书签类似,当我们希望在日后某一时刻快速定位到一处代码时使用.比如在项目例会上,你需要演示本周你所做的一些改进,在开会前可以事先