var data:NSArray!

var scrollView: UIScrollView!

var pageCtrl: UIPageControl!

override func viewDidLoad() {

super.viewDidLoad()

// 实例化tableView

let tableView:UITableView = UITableView(frame: self.view.bounds, style: UITableViewStyle.Plain)

tableView.delegate = self

tableView.dataSource = self

tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

self.view.addSubview(tableView)

// 系统字体

data = UIFont.familyNames()

// 实例化scrollView

let widthm = tableView.frame.size.width

let view: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 200))

scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: widthm, height: 200))

scrollView.contentSize = CGSize(width: widthm * 5, height: 200)

scrollView.showsHorizontalScrollIndicator = false

scrollView.showsVerticalScrollIndicator = false

scrollView.pagingEnabled = true

scrollView.delegate = self

for index in 1...5 {

let imgName = "image\(index).jpg"

let imgView: UIImageView = UIImageView(image: UIImage(named: imgName))

imgView.frame = CGRect(x: widthm * CGFloat(index - 1), y: 0, width: widthm, height: 200)

scrollView.addSubview(imgView)

}

view.autoresizesSubviews = false

view.addSubview(scrollView)

// 实例化分页控制器

pageCtrl = UIPageControl(frame: CGRect(x: 0, y: 200 - 20, width: widthm, height: 20))

pageCtrl.addTarget(self, action: Selector("pageCtrlAction:"), forControlEvents: UIControlEvents.ValueChanged)

pageCtrl.numberOfPages = 5

pageCtrl.currentPage = 0

view.addSubview(pageCtrl)

tableView.tableHeaderView = view

}

//MARK: UITableViewDataSource

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return data.count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let tableViewCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell

tableViewCell.textLabel?.text = self.data[indexPath.row] as? String

return tableViewCell

}

//MARK: UIScrollViewDelegate

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {

if scrollView == self.scrollView {

pageCtrl.currentPage = Int(scrollView.contentOffset.x/scrollView.frame.size.width)

}

}

//MARK: pageCtrl Action

func pageCtrlAction(pageCtrl: UIPageControl) {

//        scrollView.contentOffset.x = scrollView.frame.width * CGFloat(pageCtrl.currentPage)

scrollView.setContentOffset(CGPoint(x: scrollView.frame.width * CGFloat(pageCtrl.currentPage), y: 0), animated: true)

}

swift 分页视图的更多相关文章

  1. Swift - 分页菜单的实现(使用PagingMenuController库实现tab标签切换)

    分页菜单(分段菜单)在许多 App 上都会用到.比如大多数新闻 App,如网易新闻.今日头条等,顶部都有个导航菜单.这个导航菜单是一组标签的集合,每个标签表示一个新闻类别,我们点击这个标签后下面就会切 ...

  2. mvc 分页视图 js 失效

    MVC的分页视图确实是好东西,比ajax直观,可是联动后 之前绑定的js事件失效,所以我们在绑定的时候,要注意使用jquery的 动态绑定功能 最常见的用法应该是 select 的 change 事件 ...

  3. Django-RestFrameWork之分页 视图 路由 渲染器

    目录 一.分页 二.视图 三.路由 四.渲染器 一.分页 试问如果当数据量特别大的时候,你是怎么解决分页的? 方式a.记录当前访问页数的数据id 方式b.最多显示120页等 方式c.只显示上一页,下一 ...

  4. Swift 表视图动画教程: Drop-In Cards

    http://www.raywenderlich.com/76024/swift-table-view-animations-tutorial-drop-cards 标准 table view 是一个 ...

  5. Swift - 滚动视图(UIScrollView)的用法

    1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面. 1 2 3 4 5 6 var scrollView=UIScrollView() sc ...

  6. swift - 3D 视图,截图,关键字搜索

    1.xib 上的 3D效果 按钮 2. import UIKit //1.导入框架 import MapKit class ViewController: UIViewController { @IB ...

  7. swift开源项目精选

    Swift 开源项目精选-v1.0 2016-03-07 22:11 542人阅读 评论(0) 收藏 举报  分类: iOS(55)   Swift(4)    目录(?)[+]   转自 http: ...

  8. Swift 开源项目精选

    Swift 开源项目精选 站在个人的角度,并基于<Swift 语言指南>,针对开源项目做了一个甄别.筛选.当然,由于个人能力及涉足范围所限,还远远不够,其中肯定有偏颇及不足,还望同学们多多 ...

  9. Swift与OC区别

    一.Swift与OC区别: 1.swift程序的入口是UIApplicationMain; 2.OC的类是以.h和.m组成的;swift是一.swift结尾的; 3.OC的类是以@interface和 ...

随机推荐

  1. luarocks模块管理工具

    1.简介 该软件包可以安装和更新lua的第三方模块. 2.下载地址 请在 http://luarocks.org/releases/ 页面选择需要的软件包. wget http://luarocks. ...

  2. Cocos2d-JS实现的2048

    一.前言 2048是之前火过一段时间的休闲数字消除类游戏,它的玩法很简单,上手很容易,可是想到要得到高分却很难,看似简单的游戏却有着很多得分的技巧,想当初这个游戏也曾是陪伴我大学课堂的游戏之一.虽然在 ...

  3. cocos代码研究(16)Widget子类RadioButton学习笔记

    理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...

  4. cocos进阶教程(3)Lua加密技术

    如果开发者不想让游戏中的资源或脚本文件轻易的暴露给其他人,一般会采用对文件进行加密的方式来保护文件或资源被盗用.Quick-Cocos2d-x 为开发者提供了xxtea加密算法,用来对脚本文件及资源进 ...

  5. 1 :2 Strust2—Demo

    =============================================================== Demo基础包:

  6. 2018 Multi-University Training Contest 7 Solution

    A - Age of Moyu 题意:给出一张图,从1走到n,如果相邻两次走的边的权值不同,花费+1, 否则花费相同,求最小花费 思路:用set记录有当前点的最小花费有多少种方案到达,然后最短路 #i ...

  7. poj1106 Transmitters

    地址:http://poj.org/problem?id=1106 题目: Transmitters Time Limit: 1000MS   Memory Limit: 10000K Total S ...

  8. python 解析xml遇到xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 4, column 34

    在调试数字驱动用xml文件的方式时,包含读取xml文件的步骤,运行程序报错: d:\test\0629>python XmlUtil.pyTraceback (most recent call ...

  9. Mininet实验 命令延伸实验扩展

    本文参照:Mininet 命令延伸实验扩展 步骤1:命令行创建拓扑 sudo mn --topo minimal 最小的网络拓扑,一个交换机下挂两个主机. sudo mn --topo linear, ...

  10. POJ 1860 Currency Exchange(Bellman-Ford)

    https://vjudge.net/problem/POJ-1860 题意: 有多种货币,可以交换,有汇率并且需要支付手续费,判断是否能通过不断交换使本金变多. 思路: Bellman-Ford算法 ...