网上参考OBJC写的用ScrollView图片轮播效果,照着画了个,先上效果图:

附上代码:

 @IBOutlet weak var pc: UIPageControl!
@IBOutlet weak var sv:UIScrollView! var timer:NSTimer! override func viewDidLoad() {
super.viewDidLoad() for i in ...{ //loading the images
let image = UIImage(named: "pic\(i).jpg")!
let x = CGFloat(i - ) * self.view.frame.width //这一步获取ScrollView的宽度时我用IPHONE6实体机测试是320,右边会出现第二张图片的一部分,最后还是用ROOT VIEW的宽度
var imageView = UIImageView(frame: CGRectMake(x, , self.view.frame.width, sv.bounds.height))
imageView.image = image
sv.pagingEnabled = true
sv.showsHorizontalScrollIndicator = false
sv.scrollEnabled = true
sv.addSubview(imageView)
sv.delegate = self
} sv.contentSize = CGSizeMake((self.view.frame.width * ), sv.frame.height)
pc.numberOfPages =
pc.currentPageIndicatorTintColor = UIColor.redColor()
pc.pageIndicatorTintColor = UIColor.whiteColor()
addTimer() } func scrollViewDidScroll(scrollView: UIScrollView) {
let width = self.view.frame.width
let offsetX = scrollView.contentOffset.x
let index = (offsetX + width / ) / width
pc.currentPage = Int(index)
} func scrollViewWillBeginDragging(scrollView: UIScrollView) {
removeTimer()
} func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
addTimer()
} func addTimer() {
timer = NSTimer.scheduledTimerWithTimeInterval(, target: self, selector: "nextImage", userInfo: nil, repeats: true)
} func removeTimer() {
timer.invalidate()
} func nextImage() {
var pageIndex = pc.currentPage
if pageIndex == {
pageIndex =
} else {
pageIndex++
} var offsetX = CGFloat(pageIndex) * self.view.frame.width
sv.setContentOffset(CGPointMake(offsetX, ), animated: true)
}

SWIFT用ScrollView加图片制作Banner的更多相关文章

  1. 【Swift】swift中懒加载的写法

    swift中懒加载的写法,直接上例子 (懒加载一个遮罩视图) lazy var dummyView: UIView = { let v = UIView() v.backgroundColor = U ...

  2. Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)

    列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...

  3. iOS开发项目实战——Swift实现ScrollView滚动栏功能

    手机作为一个小屏设备,须要显示的信息往往无法在一个屏幕上显示,此时就须要使用到滚动栏,当然除了像TableView这样能够自带滚动功能的. 假设一个界面上View较多,那就必须要使用到ScrollVi ...

  4. iOS swift 启动页加载广告(图片广告+视频广告)

    一般app在启动的时候都会有广告页,广告页用来加载自己的或者第三方的广告,广告的展示形式也多种多样,最近在看swift相关的东西,这里将提供支持加载图片广告和视频广告的解决方案 思路: 我们知道在加载 ...

  5. Swift中懒加载(lazy initialization)的实现

    Swift中是存在和OC一样的懒加载机制的,但是这方面国内的资料比较少,今天把搜索引擎换成了Bing后发现用Bing查英文\最新资料要比百度强上不少. 我们在OC中一般是这样实现懒加载初始化的: 1: ...

  6. NestedScrollView、ScrollView 加载完自动滑动至底部问题的解决方案

    正常情况下,由于NestedScrollView/ScrollView 嵌套RecyclerView,可能会导致Recyclerview占据焦点导致整个NestedScrollView/ScrollV ...

  7. 如何在SCENEKIT使用SWIFT RUNTIME动态加载COLLADA文件

    问题:今天接到一个项目,负责弄需求的美眉跟我讲能不能做一个原型能够加载Collada文件,流程如下: 用户用app下载Collada 压缩包(如内购项目) 压缩包解压 展示Collada文件里的内容 ...

  8. iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件

    NSURLSession加载数据.下载.上传文件   NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍.   1,使用Data Task加载数据 使用全局的 ...

  9. Swift - 使用NSURLSession加载数据、下载、上传文件

    NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithR ...

随机推荐

  1. 使用rz,sz需要安装lrzsz

    ... tar zxvf lrzsz-1.12.20.tar.gz 4.进入目录 cd lrzsz-1.12.20 5../configure --prefix=/usr/local/lrzsz 6. ...

  2. hdu 5524 Subtrees dfs

    Subtrees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Probl ...

  3. html 画圆

    <html> <head> <script type = "text/javascript" src = "https://d3js.org ...

  4. jenkins定时构建示例

    项目:使用git+jenkins实现持续集成 开始构建 General 源码管理 我们安装的是git插件,还可以安装svn插件 我们将git路径存在这里还需要权限认证,否则会出现error 我们添加一 ...

  5. 02_DllZZ.def

    ZC: 在VC6里面,只要有这个文件就可以了.但是到了 VS2010,需要手动的指定使用这个文件才行:VS2010-->项目-->属性--> 来到窗口"??? 属性页&qu ...

  6. Jedis 之 初始<一>

    package xx.jedis; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis ...

  7. Codeforces 888E - Maximum Subsequence(折半枚举(meet-in-the-middle))

    888E - Maximum Subsequence 思路:折半枚举. 代码: #include<bits/stdc++.h> using namespace std; #define l ...

  8. jsp forward跟redirect区别

    forward 相当于php的 require/include 属于服务器包含/跳转 request.getRequestDispatcher("result.jsp").forw ...

  9. 3-23Agile Web Development,3-24(chapter: 6)

    第2章 Instant Gratification 复习 和 练习第一章,新建rails web页面. 重点: 知道了类,方法,实例变量 在rails是怎么用的. rails generate con ...

  10. 最小生成树(模板 prim)

    Description 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表, 表中列出了任意两城镇间修建道路 ...