关于一个controller里面几个全屏view切换的问题

我们经常会碰到在一个controller里面实现多个view切换的需求。

一种方便的实现方法,就是利用 addChildViewController函数,通过为主controller添加子controller,然后首次把相应的子controller的view作为subview添加到主controller的主view上面,通过transitionFromViewController toViewController来实现view的切换。这是个不错而又方便的方法。

但是子controller的view需要设置相应的frame,才能添加到正确的位置,实现正确的切换。其中首次展示的view的frame和切换后显示的view的frame的高度是不同的,(虽然我们看到的高度是相同的),这可能是因为首次显示的是通过addsubview的方式实现的,而其它的是通过transition来实现的。

具体的高度设定:

1、非首次显示的view的高度设置完全是我们看到的高度,屏幕高度减去一些控件的高度。一般包括导航栏状态栏高度,切换控件的高度等。

2、首次(默认)显示的view的高度,只需要屏幕高度减去本次切换所用的控件的高度。注意之所以说本次切换所用控件,是因为有时会嵌套多层切换,切换里面还有切换,那么减去的也仅仅是本次切换的高度。

3、子controller内部的view还是按照实际的高度设定的,比如有个tableview,高度也是需要减去所有的控件的高度,也就是我们看到的实际的高度。

如果高度设定不正确,会造成超出区域的事件不响应的现象和其它一些奇怪现象。

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

时间: 2024-10-12 14:20:51

关于一个controller里面几个全屏view切换的问题的相关文章

使用CSS3和JavaScript创建一个光滑,动画的全屏搜索表单

设计良好且易于访问的搜索UI可以鼓励用户更频繁地与您网站的搜索功能进行互动,从而提高用户满意度并增加页面浏览量.为此,随着小屏幕设备的主导地位,搜索盒的趋势是使它们变得非常大和大胆.在本教程中,我们将逐步介绍如何创建一个精美,精心设计的全屏搜索表单,该表单可以在所有现代浏览器和设备上运行良好. 创建标题和搜索图标界面 首先,我们将使用左侧徽标的经典图案和一些导航链接以及最右侧的搜索图标快速整理标题部分,所有内容都垂直居中.最终点击图标将触发全屏搜索框.而不是使用CSS花车,我们将转向 CSS F

自定义MediaController来实现修改底部布局作以及实现vedioview半屏与全屏的切换

因为直接使用系统vedioview,底部的MediaController布局有点不好看,尤其是进度条,不能实现办半屏与全屏的切换,自己网上看了下别人的资料,整理了下,做以笔记:初学者,勉强才实现这些功能,还有许多地方不明白. 看下效果:                    1,MediaController.java.直接复制下系统源码的MediaController,来进行修改,就两个地方,一个布局相关的修改,以及进度条ProgressBar的修改,然后就 是添加了半屏与全屏的切换接口. /

JS框架_(jQuery.js)文章全屏动画切换

文章全屏动画切换效果 <!doctype html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="

21款大气的全屏图片切换代码

html5全屏背景切换点击按钮svg背景滑动切换特效 jQuery全屏响应式手指滑动图片轮播代码 jquery商城网站全屏多张图片滑动切换代码 jQuery仿瑞丽全屏透明遮罩图片轮播滚动代码 html5响应式全屏滚动图片切换幻灯片特效 jQuery全屏带进度条图片轮播特效 jQuery仿音悦台网站全屏带标题的焦点图轮播代码 jQuery背景和banner图片一起切换全屏焦点图切换代码 jquery html5响应式幻灯片插件网站响应式全屏幻灯片轮播代码 JQuery自适应全屏图片滚动鼠标上下滑动

Android Ireader的全屏与非全屏的切换效果实现

ireader在全屏与非全屏切换,整体的阅读view并没有进行明显示的重绘与抖动现像,如果只是单纯的设置activity的全屏与非全屏切换,因为view的大小变动,会有抖动现象出现 而Android只在4.4版本才提供了沉浸式状态拦,而在4.4之前怎么办呢 1.首先直接在AndroidManifest.xml中需要全屏显示的Activity属性中添加 1 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 2.设置act

基于HTML5 SVG全屏滑块切换特效

基于HTML5 SVG全屏滑块切换特效是一款基于jQuery+HTML5实现的全屏动画切换特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <section class="cd-slider-wrapper"> <ul class="cd-slider"> <li class="visible"> <div style=" position:fixed; z-inde

基于jQuery商城网站全屏图片切换代码

基于jQuery商城网站全屏图片切换代码.这是一款商城网站全屏多张图片滑动切换代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="slides"> <div class="slideInner"> <a href="#" style="background: url(img/slide1.jpg) no-repeat;"> <div cla

一个app中保持程序全屏的方法。

1 public void toggleFullscreen(boolean fullScreen) 2 { 3 //fullScreen为true时全屏 4 5 WindowManager.LayoutParams attrs = getWindow().getAttributes(); 6 7 if (fullScreen) 8 { 9 attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; 10 } 11 else 12 { 1

HTML5 全屏特性

全屏功能是浏览器很早就支持的一项功能了,可以让你页面中的video, image ,div 等等子元素实现全屏浏览,从而带来更好的视觉体验,来看看怎么使用吧.先来看看有哪些API和事件支持. API // 元素请求全屏显示 element.requestFullscreen() // 检测文档的当前状态是否允许执行全屏操作 document.fullscreenEnabled() //当前显示的元素是否处于全屏状态,如果处于,则返回为非空对象,否则返回null document.fullscre