SWIFT用ScrollView加图片制作Banner
网上参考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的更多相关文章
- 【Swift】swift中懒加载的写法
swift中懒加载的写法,直接上例子 (懒加载一个遮罩视图) lazy var dummyView: UIView = { let v = UIView() v.backgroundColor = U ...
- Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)
列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...
- iOS开发项目实战——Swift实现ScrollView滚动栏功能
手机作为一个小屏设备,须要显示的信息往往无法在一个屏幕上显示,此时就须要使用到滚动栏,当然除了像TableView这样能够自带滚动功能的. 假设一个界面上View较多,那就必须要使用到ScrollVi ...
- iOS swift 启动页加载广告(图片广告+视频广告)
一般app在启动的时候都会有广告页,广告页用来加载自己的或者第三方的广告,广告的展示形式也多种多样,最近在看swift相关的东西,这里将提供支持加载图片广告和视频广告的解决方案 思路: 我们知道在加载 ...
- Swift中懒加载(lazy initialization)的实现
Swift中是存在和OC一样的懒加载机制的,但是这方面国内的资料比较少,今天把搜索引擎换成了Bing后发现用Bing查英文\最新资料要比百度强上不少. 我们在OC中一般是这样实现懒加载初始化的: 1: ...
- NestedScrollView、ScrollView 加载完自动滑动至底部问题的解决方案
正常情况下,由于NestedScrollView/ScrollView 嵌套RecyclerView,可能会导致Recyclerview占据焦点导致整个NestedScrollView/ScrollV ...
- 如何在SCENEKIT使用SWIFT RUNTIME动态加载COLLADA文件
问题:今天接到一个项目,负责弄需求的美眉跟我讲能不能做一个原型能够加载Collada文件,流程如下: 用户用app下载Collada 压缩包(如内购项目) 压缩包解压 展示Collada文件里的内容 ...
- iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件
NSURLSession加载数据.下载.上传文件 NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的 ...
- Swift - 使用NSURLSession加载数据、下载、上传文件
NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithR ...
随机推荐
- HDU 1711 Number Sequence(KMP模板)
http://acm.hdu.edu.cn/showproblem.php?pid=1711 这道题就是一个KMP模板. #include<iostream> #include<cs ...
- python 将16进制转化为2进制
>>> x='123abc' >>> b=bin())[:] >>> print(b)
- API接口自动化之2 处理http请求的返回体,对返回体做校验
举例一个接口测试的常见流程 1) 发送接口请求2) 断言接口响应状态是不是200 OK3) 断言接口的响应时间低于某一个值(看情况,不是必选)4) 断言响应数据是否正确,一般的做法是判断某一个值是否相 ...
- Springboot mybatis generate 自动生成实体类和Mapper
https://github.com/JasmineQian/SpringDemo_2019/tree/master/mybatis Springboot让java开发变得方便,Springboot中 ...
- 探索gff/gtf格式
参考: GFF格式说明 Generic Feature Format Version 3 (GFF3) 先下载一个 gtf 文件浏览一下 1 havana gene 11869 14409 . + . ...
- pip 源 替换国内源
网上收集来的pip源地址: 阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simp ...
- 库: rspec/rspec-expectations matcher匹配器常用
https://github.com/rspec/rspec-expectations https://relishapp.com/rspec/rspec-expectations/v/3-7/doc ...
- 『Scrapy』爬取腾讯招聘网站
分析爬取对象 初始网址, http://hr.tencent.com/position.php?@start=0&start=0#a (可选)由于含有多页数据,我们可以查看一下这些网址有什么相 ...
- 使用与不使用@RequestBody注解的区别
1. 如果使用@RequestBody接受页面参数: public Map<String,Object> insertBudget(@ApiParam(required = true,na ...
- mysql导入导出数据过大命令
phpmyadmin 导入或者导出都是有限制的,当导入或者导出的数据会报错. 1.导入数据库 mysql -u root -p<备份文件的保存路径 eg: mysql -u root -p &l ...