热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UIScrollView懒加载的使用

这里是xib拖的控件  代码:classViewController:UIViewController,UIScrollViewDelegate{letWIDTH:DoubleDo

这里是xib拖的控件

 

 代码:

class ViewController: UIViewController,UIScrollViewDelegate {
let WIDTH : Double = Double(UIScreen.main.bounds.size.width) //当前的
@IBOutlet weak var oneBtn: UIButton!
@IBOutlet weak var twoBtn: UIButton!
@IBOutlet weak var threeBtn: UIButton!
@IBOutlet weak var scrollView: UIScrollView!

var vcArr = [UIViewController]()//这里是字ViewController的数组

override func viewDidLoad() {
super.viewDidLoad()

addChildController()


}
@IBAction func oneBtnClick(_ sender: Any) {
self.oneBtn.isSelected = true;
self.twoBtn.isSelected = false;
self.threeBtn.isSelected = false;
self.scrollView.setContentOffset(CGPoint.init(x: WIDTH*0, y: 0), animated: true)
}
@IBAction func twoBtnClick(_ sender: Any) {
self.oneBtn.isSelected = false;
self.twoBtn.isSelected = true;
self.threeBtn.isSelected = false;
self.scrollView.setContentOffset(CGPoint.init(x: WIDTH*1, y: 0), animated: true)
}
@IBAction func threeBtnClick(_ sender: Any) {
self.oneBtn.isSelected = false;
self.twoBtn.isSelected = false;
self.threeBtn.isSelected = true;
self.scrollView.setContentOffset(CGPoint.init(x: WIDTH*2, y: 0), animated: true)
}


func addChildController(){

for _ in 0...2 {
let vc:UIViewCOntroller= UIViewController.init();
self.addChild(vc)
vcArr.append(vc)
}


self.scrollView.cOntentSize= CGSize.init(width:WIDTH * 3.0 , height: 0)
scrollViewDidEndScrollingAnimation(self.scrollView)
}

/**
scrollview动画结束调用的方法
*/
public func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView){
let width = scrollView.frame.size.width;
let height = scrollView.frame.size.height;
let page = Int(scrollView.contentOffset.x/width)
if(page == 0){
oneBtnClick(self.oneBtn)
}else if(page == 1){
twoBtnClick(self.twoBtn)
}else if(page == 2){
threeBtnClick(self.threeBtn)
}
let vc = vcArr[page]
if(vc.isViewLoaded){
return;
}

vc.view.frame = CGRect.init(x: width * CGFloat(page), y: 0, width: width, height: height)
self.scrollView.addSubview(vc.view)
if(page == 0){
vc.view.backgroundColor = UIColor.red
}else if(page == 1){
vc.view.backgroundColor = UIColor.blue
}else if(page == 2){
vc.view.backgroundColor = UIColor.gray
}
}
/**
scrollview手动滑动结束调用的方法
*/
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
scrollViewDidEndScrollingAnimation(self.scrollView)
let page = Int(scrollView.contentOffset.x/scrollView.frame.size.width)
if(page == 0){
oneBtnClick(self.oneBtn)
}else if(page == 1){
twoBtnClick(self.twoBtn)
}else if(page == 2){
threeBtnClick(self.threeBtn)
}
}

}

 



推荐阅读
author-avatar
猪猪看看新闻2011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有