swift TabBarController UINavigationController 组合使用 带有ScrollView和菜单内容以及tableView
来源:互联网 发布:nginx 下载 编辑:程序博客网 时间:2024/05/18 21:10
内容接上一篇0 0才知道内容有限
第一个为定义的轮播图的代码内容为继承重写了关于UITableViewCell的内容
import UIKitclass ScrollImage: UITableViewCell , UIScrollViewDelegate { let SCREEN_WIDTH = UIScreen.mainScreen().bounds.size.width var scrollView: UIScrollView? var pageController: UIPageControl? var timer: NSTimer? override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) scrollView = UIScrollView(frame: CGRectMake(0,0,SCREEN_WIDTH,180)) scrollView?.contentSize = CGSizeMake(4 * SCREEN_WIDTH , 180) scrollView?.pagingEnabled = true scrollView?.delegate = self scrollView?.showsHorizontalScrollIndicator = false for i in 0 ..< 4 { let imageView = UIImageView(frame: CGRectMake(CGFloat(i) * SCREEN_WIDTH, 0, SCREEN_WIDTH, 180)) imageView.image = UIImage(named: "DEEMO\(i + 1)") imageView.tag = i + 10 scrollView?.addSubview(imageView) } pageController = UIPageControl(frame: CGRectMake(SCREEN_WIDTH / 2 - 20, 160 , 0 , 20)) pageController?.currentPage = 0 pageController?.numberOfPages = 4 pageController?.currentPageIndicatorTintColor = UIColor.blackColor() pageController?.pageIndicatorTintColor = UIColor.grayColor() self.addSubview(scrollView!) self.addSubview(pageController!) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } //MARK: -- 轮播图的delegate func scrollViewDidScroll(scrollView: UIScrollView) { let scrollViewW = scrollView.frame.size.width let x = scrollView.contentOffset.x let page = (x + scrollViewW / 2) / scrollViewW pageController?.currentPage = Int(page) }}
就为定义了scrollView还有UIpageController
菜单的代码为
import UIKitclass Menu: UITableViewCell , UIScrollViewDelegate { var pageControl: UIPageControl? let SCREEN_WIDTH = UIScreen.mainScreen().bounds.size.width override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) let backView1 = UIView(frame: CGRectMake(0,0,SCREEN_WIDTH,160)) let backView2 = UIView(frame: CGRectMake(SCREEN_WIDTH,0,SCREEN_WIDTH,160)) backView1.backgroundColor = UIColor(red: 207, green: 192, blue: 175, alpha: 1) backView2.backgroundColor = UIColor(red: 107, green: 105, blue: 175, alpha: 1) let scrollView = UIScrollView(frame: CGRectMake(0,0,SCREEN_WIDTH,160)) scrollView.contentSize = CGSizeMake(2 * SCREEN_WIDTH, 160) scrollView.pagingEnabled = true scrollView.delegate = self scrollView.showsHorizontalScrollIndicator = false scrollView.showsVerticalScrollIndicator = false scrollView.addSubview(backView1) scrollView.addSubview(backView2) self.addSubview(scrollView) for i in 0 ..< 16 { if i < 4 { let frame = CGRectMake(CGFloat(i) * SCREEN_WIDTH / 4, 0, SCREEN_WIDTH / 4, 80) let imageView = UIImageView(frame: frame) imageView.image = UIImage(named: "DEEMO\(i + 1)") let tap = UITapGestureRecognizer(target: self, action: #selector(onTap)) imageView.addGestureRecognizer(tap) backView1.addSubview(imageView) }else if i < 8 { let frame = CGRectMake(CGFloat(i - 4) * SCREEN_WIDTH / 4, 80, SCREEN_WIDTH / 4, 80) let imageView = UIImageView(frame: frame) imageView.image = UIImage(named: "DEEMO\(i + 1)") let tap = UITapGestureRecognizer(target: self, action: #selector(onTap)) imageView.addGestureRecognizer(tap) backView1.addSubview(imageView) }else if i < 12 { let frame = CGRectMake(CGFloat(i - 8) * SCREEN_WIDTH / 4, 0, SCREEN_WIDTH / 4, 80) let imageView = UIImageView(frame: frame) imageView.image = UIImage(named: "DEEMO\(i + 1)") let tap = UITapGestureRecognizer(target: self, action: #selector(onTap)) imageView.addGestureRecognizer(tap) backView2.addSubview(imageView) }else { let frame = CGRectMake(CGFloat(i - 12) * SCREEN_WIDTH / 4, 0, SCREEN_WIDTH / 4, 80) let imageView = UIImageView(frame: frame) imageView.image = UIImage(named: "DEEMO\(i + 1)") let tap = UITapGestureRecognizer(target: self, action: #selector(onTap)) imageView.addGestureRecognizer(tap) backView2.addSubview(imageView) } } pageControl = UIPageControl(frame: CGRectMake(SCREEN_WIDTH / 2 - 20, 140 , 0 , 20)) pageControl!.currentPage = 0 pageControl!.numberOfPages = 2 pageControl!.currentPageIndicatorTintColor = UIColor.blackColor() pageControl!.pageIndicatorTintColor = UIColor.grayColor() self.addSubview(pageControl!) } func onTap(){ print(123) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } //MARK: -- 轮播图的delegate func scrollViewDidScroll(scrollView: UIScrollView) { let scrollViewW = scrollView.frame.size.width let x = scrollView.contentOffset.x let page = (x + scrollViewW / 2) / scrollViewW pageControl?.currentPage = Int(page) }}菜单的内容跟轮播图的很类似就除了通过计算算了菜单中的图片的存放位置
整个的App就为这么制作就完成了..
代码写的很简单.也很丑陋.所以尽情原谅哈
整个APP中的viewController都在storyBoard里设置了identity里的storyBoard ID 内容都为其对应的其类名.
整个代码就为这样如果有什么写的不对的话可以告诉下小弟..这个就为我自己研究的swift做出来的小demo样
0 0
- swift TabBarController UINavigationController 组合使用 带有ScrollView和菜单内容以及tableView
- swift TabBarController UINavigationController 组合使用 带有ScrollView和菜单内容以及tableView
- scrollview和tableview混合使用
- UINavigationController和UITabBarController的组合使用
- 使用SnapKit约束label、scrollview和tableview
- swift中tableview的使用和注意事项
- UINavigationController和scrollview的问题
- Swift开发之 使用系统的TabbarController
- 【swift】使用tabbarController出现的问题
- iOS TableView 使用(swift)
- swift- tableView 的使用
- swift-tableview使用
- swift中UINavigationController的使用
- cocos2dx之TableView和ScrollView的混合使用
- 在 UITabBarController 和 UINavigationController tableView被navigati
- 在 UITabBarController 和 UINavigationController tableView被navigati
- swift tableView registerCell基于协议的实现和使用
- uinavigationController和uiSrcoll以及uiPageControl的结合使用---小相册
- sessionFactory &session&transaction interface
- NGUI之UILabel
- Java字符串:StringBuffer使用详解及源码分析
- ThreadLocal
- 对于画图板项目的相关总结和思考
- swift TabBarController UINavigationController 组合使用 带有ScrollView和菜单内容以及tableView
- 【bzoj4443】[Scoi2015]小凸玩矩阵 二分+二分图匹配
- switch
- JVM调优总结
- 不认识spring xml配置文件dtd和xsd类型,血与泪的教训啊
- mac 终端显示远程Linux、Unix 上的图形化程序界面
- C#时间格式转换、日期操作函数、常用转换语法
- Linux 管道通信
- android自定义View中getWidth和getHeight返回0