scrollview加载多个自定义UI界面以实现滚动效果

创建多个ViewController与多个Storyboard,这里分别新建了三个

在每个storyboard中选中第一个顶级view

在右侧的Custom Class中为其绑定Controller,并设置Storyboard ID

在主界面中创建一个ScrollView,并设值其宽高与可滑动的距离

scrollView=UIScrollView(frame: CGRectMake(CGFloat(0), CGFloat(0), screenWidth, screenHeight))

scrollView.contentSize=CGSizeMake(CGFloat(3)*screenWidth, screenHeight-offsetY)

scrollView.pagingEnabled=true

scrollView.delegate=self

寻找到各个storyboard与其绑定的控制器与view

var oneSB=UIStoryboard(name: "One", bundle: nil)

var twoSB=UIStoryboard(name: "Two", bundle: nil)

var threeSB=UIStoryboard(name: "Third", bundle: nil)

var one=oneSB.instantiateViewControllerWithIdentifier("one") as OneViewController

var two=twoSB.instantiateViewControllerWithIdentifier("two") as TwoViewController

var three=threeSB.instantiateViewControllerWithIdentifier("three") as ThirdViewController

one.view.frame=CGRectMake(0, 0, screenWidth, screenHeight)

two.view.frame=CGRectMake(screenWidth, 0, screenWidth, screenHeight)

three.view.frame=CGRectMake(screenWidth*2, 0, screenWidth, screenHeight)

scrollView.addSubview(one.view)

scrollView.addSubview(two.view)

scrollView.addSubview(three.view)

若scrollView为storyboard中绑定的控件,这样已经完成,若是在代码中创建的scrollView,则需要添加一句

view.addSubview(scrollView)

来自为知笔记(Wiz)

时间: 2024-11-10 06:13:11

scrollview加载多个自定义UI界面以实现滚动效果的相关文章

BW:如何加载和生成自定义的层次结构,在不使用平面文件的SAP业务信息仓库

介绍 通常情况下,报告需要在一个类似树的结构来显示数据.通过启用此特性在SAP BW层次结构.高级数据显示的层次结构的顶层节点.更详细的数据可以向下钻取到的层次结构中的下级节点的可视化. 考虑一个例子层次的客户联络层次",用于限定电信呼叫中心接收电话. 图1:客户联络层次 BW)" src="http://hi.csdn.net/attachment/201102/18/0_1298015417vklV.gif"> 加载层次结构的标准机制 有几种可能性供货与S

加载loading对话框的功能(不退出沉浸式效果)

上一篇基于修改系统源码的前提下,实现了完全的沉浸式体验效果.可参考这篇 戳这 一.自定义Dialog 在沉浸式效果下,当界面弹出对话框时,对话框将获取到焦点,这将导致界面退出沉浸式效果,那么是不是能通过屏蔽对话框获取焦点来达到不退出沉浸式的目的呢.说干就干,我们先来看一下改善后的效果图. 普通对话框弹出效果 LoadingDialog弹出效果 自定义LoadingDialog public class LoadingDialog extends Dialog { public LoadingDi

webview加载页面为什么在UI线程里面做,难道不是耗时操作么

============问题描述============ 谁能告诉我 想不明白 ============解决方案1============ WebView 里面必须放在UI线程里面展示. private static void checkThread() { if (Looper.myLooper() != Looper.getMainLooper()) { Throwable throwable = new Throwable( "Warning: A WebView method was c

如何让UITableView加载完成后更新UI回到主线程

tableView加载完毕后回调的delegate方法: -(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){

【原创Android游戏】NinOne V2.3.1 --加载模式的学习,界面的重新设计

上次更新后又发现了一些bug,而且是非常明显的bug,一一加以改正了过来. 猜数字游戏的功能已基本实现,不过我觉得一个应用单做一个游戏有点不太过瘾,略显单调,于是我打算基于这个,写一个n合1的游戏集成应用,一个应用集成多款游戏,这样就可以通过一个应用想玩什么游戏就玩什么游戏了,虽然可能只会实现一些简单游戏,但是反正是自己写着玩嘛,有兴趣就有动力,嘿嘿. ------------------------------------------------------------------------

支持下拉刷新和上划加载更多的自定义RecyclerView(仿XListView效果)

首先看效果 下拉刷新:        上划加载        在项目更新的过程中,遇到了一个将XListView换成recyclerView的需求,而且更换完之后大体效果不能变,但是对于下拉刷新这样的效果,谷歌给出的解决方案是把RecyclerView放在一个SwipeRefreshLayout中,但是这样其实是拉下一个小圆形控件实现的,和XListView的header效果不同.在网上找了很多的别人代码,都没有实现我想要的效果,于是自己动手写了一个. 具体实现的效果有以下几条 下拉刷新功能:

【转】【C#利用后台动态加载数据】Winform“防界面卡死”【BackgroundWorker】类

using System.ComponentModel 直接使用EgProgressBar方法 BackgroundWorker Bw = new BackgroundWorker(); ListView listView1 = new ListView(); public void EgProgressBar() { DirectoryInfo di = new DirectoryInfo(@"C:/Windows"); FileInfo[] fi = di.GetFiles();

【C#利用后台动态加载数据】Winform“防界面卡死”【BackgroundWorker】类

using System.ComponentModel 直接使用EgProgressBar方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39   BackgroundWorker Bw = new BackgroundWorker();   ListView listView1 = new ListView();   publi

WinForm中异步加载数据并使用进度条

在WinForm程序中,有时会因为加载大量数据导致UI界面假死,这种情况对于用户来说是非常不友好的.因此,在加载大量数据的情况下,首先应该将数据加载放在另一线程中进行,这样保证了UI界面的响应:其次可以提供一个进度条使用户明白程序正在加载数据,同时清楚知道目前加载的进度. 实现上述功能的一个简单的方式是利用 System.ComponentModel 中的工具类:BackgroundWorker,它支持取消,进度报告,异常转发,并且实现了 IComponent 接口,意味着可以直接在VS设计器中