自定义模式对话框

首先在故事板中拖入一个UIViewController,设计你的UI。我们以下面的例子为例:

在这个ViewController中,上半部分我们将设置为透明(通过代码设置),而下半部分是3个UIButton。

在Identity面板中,将Class 设置为一个新的UIViewController子类。然后创建这个UIViewController子类。

在故事板中,选中3个按钮所在的父UIView,即上图中的containerView,添加如下布局约束:

打开助手编辑器,为最下面一个约束Bottom Space to在创建IBOutlet menuBottomConstraint。

并在viewDidLoad方法中,加入代码:

self.view.backgroundColor = UIColor(white: 0.3, alpha: 0.3)

menuBottomConstraint.constant = -128

在viewDidAppear方法中:

super.viewDidAppear(animated)

self.view.layoutIfNeeded()

UIView.animateWithDuration(0.2) {

self.menuBottomConstraint.constant = 0

self.view.layoutIfNeeded()

}

然后在故事板中,在需要显示这个对话框的Scene中,创建一个segue导航到这个我们的自定义对话框。选择segue,在属性面板中进行如下设置(注意,Animates设置为false,Presentation和Transition要设置为Default,否则背景不会透明):

在需要显示对话框的ViewController的prepareForSegue方法中:

if segue.identifier == “ContactUsController” {

if let vc=segue.destinationViewController as? UIViewController{

vc.modalPresentationStyle =

UIModalPresentationStyle.OverCurrentContext;

}

}

运行程序,效果如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-16 02:36:46

自定义模式对话框的相关文章

wxPython Modal Dialog模式对话框,Python对话框中打开对话框

今天用wxPython写一个输入关键词自动生成文章工具,设置部分需要用模式对话框来打开设置界面.下面介绍wxPython Modal Dialog模式对话框: 1. Modal Dialog(模式对话框) A modal dialog blocks other widgets from receiving user events until it is closed; in other words, it places the user in dialog mode for the durati

自定义上下文对话框

以下是一种方法,还有一种方法:http://www.cnblogs.com/and_he/archive/2011/09/16/2178716.htmlpublic class MyContextDialog extends Dialog { public MyContextDialog(Context context) { super(context); } public MyContextDialog(Context context, int theme) { super(context,

JAVA的模式对话框和非模式对话框

周末的时候,一位网友让我帮他把他的无模式对话框改成有模式对话框. 界面是有swing制作的,都是JFrame,我从来没有接触过swing编程.大致的代码还是看的懂,很多都和C#很相似. 然后就去查资料,JAVA的模式对话框是如何调用的.终于查到了需要用到JDialog类,JDialog的构造函数里可以指定是否是模式对话框. 1 public JDialog(Frame owner, String title, boolean modal) { 2 super(owner == null? Swi

MFC模式对话框与非模式对话框 消息处理顺序

对话框有两种创建方式:DoModal和Creat. 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同. 对于模态的对话框,在该对话框被关闭前,用户将不能在同一应用程序的其他地方进行工作(例如open file对话框),而对于非模态的对话框,在它留在屏幕上的同时可以在其他的地方进行工作,(例如find file对话框) Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就无所谓了,看不出modalless的效

android 显示自定义视图对话框

activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button a

模式对话框与非模式对话框 消息处理顺序

对话框有两种创建方式:DoModal和Creat. 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同. 对于模态的对话框,在该对话框被关闭前,用户将不能在同一应用程序的其他地方进行工作(例如open file对话框),而对于非模态的对话框,在它留在屏幕上的同时可以在其他的地方进行工作,(例如find file对话框) Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就无所谓了,看不出modalless的效

VC 模式对话框和非模式对话框的创建,销毁和区别

在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的.而非模式对话框则是利用CreateWindow来创建的.在MFC或是WTL中,模式对话框一般是使用DoModal,而非模式对话框的创建则是使用Create.模式对话框创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作.而非模式对话框则无需这样,它不强制要求用户立即反应,而是与其他窗口同时接受用户操作.Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就

TextView 借助Linkify,使用自定义模式设置链接

http://my.oschina.net/fengheju/blog/176105 TextView是android中的一个比较常用的控件,它有一个非常有趣的特性,可以通过android:autoLink设置某些模式,使得textView文本中匹配这个模式的文本段成为可点链接.android默认支持的模式有:web,email,phone,map以及它们的组合. 例如: ? 1 2 3 4 5 <TextView         android:layout_width="wrap_co

添加无模式对话框

本文只描述了一种添加无模式对话框的方法,不涉及所有方法的讨论,有好的方法,欢迎大家讨论.关于模式和无模式的对话框的区别,在上篇文章中已有,不再赘述,直接捞干的. 1.创建的是基于对话框的工程.(我的是wince下的): 2.有一个父窗口,插入新的窗口如newDlg,并将其属性设置为child: 3.给newDlg 添加类,如newDlg.cpp , newDlg.h 4.在父窗口文件中添加以下代码: 某个按钮操作函数{           //创建   newDlg  NewDlg: