不用抽屉实现qq左侧拦展示功能(简单界面实现)

重点逻辑在于,实现动画过程给最上层的控制器添加一个view,来实现动画的返回功能。

class first: UIViewController {

//动画按钮

var aniBtn:UIButton?

//三个测试控制器

var three: Three?

var four: Three?

var two: Two?

//覆盖的view

private var rightCoverView: UIView!

//动画参数

var leftShowTransform: CGAffineTransform {

get {

return CGAffineTransformScale(CGAffineTransformMakeTranslation(SlideMaxOffset * 0.8, SlideMaxOffset * 0.8 * 0.2 ), 0.8, 0.8)

}

}

var leftHideTransform: CGAffineTransform {

get {

return CGAffineTransformScale(CGAffineTransformMakeTranslation(SlideMinOffset * 0.8, 0), 1.00, 1.00)

}

}

var SlideMaxOffset: CGFloat {

get {

return UIScreen.mainScreen().bounds.size.width * 0.7

}

}

var SlideMinOffset: CGFloat {

get {

return UIScreen.mainScreen().bounds.size.width * 0.0

}

}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

print("touch")

}

override func viewDidLoad() {

super.viewDidLoad()

self.view.backgroundColor = UIColor.blueColor()

self.setupSubview()

}

func setupSubview() {

two = Two()

self.view.addSubview(two!.view)

self.addChildViewController(two!)

three = {

let th = Three()

return th

}()

self.view.addSubview(three!.view)

self.addChildViewController(three!)

//核心,实现动画的过程给最上面的控制器添加一个view,来实现动画的返回功能

rightCoverView = {

let view = UIButton(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height))

let gesture = UITapGestureRecognizer(target: self, action: "hideLeft")

view.userInteractionEnabled = true

view.addGestureRecognizer(gesture)

view.backgroundColor = UIColor.greenColor()

return view

} ()

aniBtn = UIButton()

self.view.addSubview(aniBtn!)

aniBtn?.frame = CGRectMake(100, 100, 20, 20)

aniBtn?.backgroundColor = UIColor.redColor()

aniBtn?.userInteractionEnabled = true

aniBtn?.addTarget(self, action: "aniBtnClick", forControlEvents: .TouchDown)

}

func aniBtnClick (){

three!.view.addSubview(rightCoverView)

UIView.animateWithDuration(0.45, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0.45, options: .BeginFromCurrentState, animations: { () -> Void in

self.three?.view.transform = self.leftShowTransform

}) { (complete) -> Void in

print("回调成功")

}

}

func hideLeft() {

rightCoverView.removeFromSuperview()

UIView.animateWithDuration(0.45, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0.45, options: .BeginFromCurrentState, animations: { () -> Void in

self.three?.view.transform = self.leftHideTransform

}) { (complete) -> Void in

print("yes")

}

}

}

时间: 2024-10-25 12:25:30

不用抽屉实现qq左侧拦展示功能(简单界面实现)的相关文章

模拟QQ系统设置面板实现功能

业务需求: 基于网盘客户端的实现,原有网盘的设置面板无论从界面显示还是从业务需求都不能满足我们的正常需求.当前的要求是,模拟QQ系统设置的面板实现当前我们网盘中的基本配置功能.在完成这篇文章时已将基本功能实现完成,虽未整合进网盘客户端中,但基本技术预演已经实现. QQ系统设置面板分析: QQ系统设置面板效果图: QQ系统设置面板功能描述: 由于存在较多的配置,如果每个模块的配置项都设计到一个窗体中,则会存在很多的窗体,不太符合用户的使用体验,且程序编写也比较麻烦.QQ系统设置面板中的实现是,所有

【大话QT之八】模拟QQ系统设置面板实现功能

业务需求: 基于网盘客户端的实现,原有网盘的设置面板无论从界面显示还是从业务需求都不能满足我们的正常需求.当前的要求是,模拟QQ系统设置的面板实现当前我们网盘中的基本配置功能.在完成这篇文章时已将基本功能实现完成,虽未整合进网盘客户端中,但基本技术预演已经实现. QQ系统设置面板分析: QQ系统设置面板效果图: QQ系统设置面板功能描述: 由于存在较多的配置,如果每个模块的配置项都设计到一个窗体中,则会存在很多的窗体,不太符合用户的使用体验,且程序编写也比较麻烦.QQ系统设置面板中的实现是,所有

QQ登录网站接入功能实现--非官方文档搬运

背景 最近第一次使用QQ登录功能,期间遇到这种问题,在网上找了很多资料,大多都是官方的搬运,并没有真正的干料,可能是个人能力问题,遇到了各种麻烦,折腾了几天,最终弄好,在这里记录一下和大家分享,希望对大家有所帮助. 由于官方文档已经对如何使用API接口做出了很明确的说明,所以这里我只是记录我在开发过程中一些步骤中遇到的问题和注意的事项,详细步骤请参考官方文档:http://wiki.connect.qq.com/ 开发环境:SpringMVC.QQ登录Java SDK版.Maven.IDEA 应

在网页中实现QQ在线客服功能的流程

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="QQText.aspx.cs" Inherits="在线客服模块_QQText" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server

HTML抽屉效果的实现与展示

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了HTML抽屉效果的实现与展示,最后还用bootstrap做了一个简单的实例. 一.基本原理 jQuery 隐藏方法 jQuery hide() 和 show()通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").click(function(){ $("p").hide();

设计功能和界面测试用例

1.1 文本框.按钮等控件测试 1.1.1 文本框的测试 如何对文本框进行测试 a,输入正常的字母或数字. b,输入已存在的文件的名称: c,输入超长字符.例如在"名称"框中输入超过允许边界个数的字符,假设最多255个字符,尝试输入     256个字符,检查程序能否正确处理: d,输入默认值,空白,空格: e,若只允许输入字母,尝试输入数字:反之:尝试输入字母: f,利用复制,粘贴等操作强制输入程序不允许的输入数据: g,输入特殊字符集,例如,NUL及\n等: h,输入超过文本框长度

HTML-003-模拟IDE代码展开收起功能简单示例

当先我们在日常的编程开发工作中使用编程工具(例如 Eclipse.Sublime 等等)都有相应的代码折叠展开功能,如下图所示,极大的方便了我们的编码工作. 同时,我们在日常的网页,尤其的广大的博客网站的源码展示部分,都采用了此种显示方式,如下图所示(示例引用位置:008-Selenium 操作下拉列表实例-Select): 这么做的意义何在呢?我觉得其实际应用有如下两种: 内容的展示和隐藏:将用户最关心.感兴趣的内容展示给用户,若用户想继续深入了解,则可通过点击展示或隐藏按钮达到查看.隐藏内容

安装Visual Studio 2013 update 2 更新包记录和新功能简单体验

昨天下载了进4个小时,将visual studio 2013 update 2 更新包和visual studio 2013 完整安装包(包含UPDATE2)的下载完成,今天抽出时间体验一下,昨天在网上看了一下英文翻译的说明,增加了一些支持和改进,我只是针对于我所看到的来操作使用一下,看看有啥变化吧.将ISO文件加载到虚拟光驱,然后开始安装更新包,界面弹出后告诉我需要大概3个多G的硬盘空间,嗨真是大啊.点击安装开始继续安装,我截个图如下 剩下是就是等着安装完成了,整个安装过程还是比较慢的,安装的

用Egret制作功能简单的打地鼠类游戏《冰桶挑战》

今天教大家使用Egret制作一款功能简单的游戏--<冰桶挑战>,这是一款大家熟悉的打地鼠类游戏,点击屏幕使用冰桶浇灭地洞里钻出来的明星,结算得到分数.游戏页面布局使用EUI封装了大量的常用UI组件,满足大部分的交互界面需求,开发者仅用1天时间即可独立完成这款小游戏的开发. 游戏效果图如下: 游戏比较简单,分为以下几个场景: · 开始场景 · 游戏场景 · 结束场景 · 游戏类 开始场景 这里使用Eui来搭建UI,舞台大小选择640 x 960,填充模式选择fixedWidth: 新建Eui组件