一. 在viewcontroller里
import UIKit
var page = UIPageControl()
class ViewController: UIViewController,UIScrollViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let imageArr = ["browse","businesscard","computer"]
// 创建滚动视图
let scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))
scrollView.delegate = self
// 设置分页滚动
scrollView.isPagingEnabled = true
// 添加视图
self.view.addSubview(scrollView)
page = UIPageControl(frame: CGRect(x: (scrollView.frame.size.width - 150)/2, y: 550, width: 150, height: 50))
page.numberOfPages = imageArr.count
page.currentPage = 0
page.currentPageIndicatorTintColor = UIColor.red
page.pageIndicatorTintColor = UIColor.lightGray
self.view .addSubview(page)
for i in 0..<imageArr.count {
// 添加图片
let imageV = UIImageView(frame: CGRect(x:scrollView.frame.size.width * CGFloat(i) , y: 0, width: scrollView.frame.size.width, height: scrollView.frame.size.height))
imageV.image = UIImage(named: imageArr[i])
imageV.isUserInteractionEnabled = true
if i == 2{
var button = UIButton (type: UIButtonType.system)
button = UIButton(frame: CGRect(x: (scrollView.frame.size.width - 150)/2, y: 350, width: 150, height: 50))
button.backgroundColor = UIColor .blue
button.setTitle("立即体验", for: UIControlState.init(rawValue: 0))
button.setTitleColor(UIColor.white, for: UIControlState.init(rawValue: 0))
button.addTarget(self, action: #selector(self.push), for: UIControlEvents.touchUpInside)
imageV.addSubview(button)
}
// 把图片添加到滚动视图上
scrollView.addSubview(imageV)
}
// 设置滚动范围
scrollView.contentSize = CGSize(width: scrollView.frame.size.width * CGFloat(imageArr.count), height: 0)
}
// 按钮跳转
@objc func push(){
let new = NewViewController()
self.present(new, animated: true, completion: nil)
}
// scrollview 代理
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let ofset = scrollView.contentOffset.x/self.view.frame.size.width
page.currentPage = Int(ofset)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
二 新建NewViewController
import UIKit
class NewViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 12 ;
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let identifier = "cell"
var cell = tablview?.dequeueReusableCell(withIdentifier:identifier)
if cell == nil{
cell = UITableViewCell(style: .default, reuseIdentifier: identifier)
}
// cell?.detailTextLabel?.text = "模拟月考"
cell?.textLabel?.text = "模拟数据"
return cell!
}
var tabArr:[Model]?
var tablview:UITableView?
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
// 创建表格
self.tablview = UITableView(frame: self.view.frame, style: .plain)
self.tablview?.delegate = self
self.tablview?.dataSource = self
self.view.addSubview(tablview!)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
// 请求网络数据
func requestNetWorlData() -> Void {
// 转动菊花
UIApplication.shared.isNetworkActivityIndicatorVisible = true
// 开始请求
let urlService = Headle()
urlService.getNewsData(channel: "头条", startSum: 0)
DispatchQueue.main.async {
self.tablview?.reloadData()
}
}
三 . 创建model
import UIKit
class Model: NSObject {
var pic:String = ""
var title:String = ""
var weburl:String = ""
}
四 创建一个Headle 实现model
import UIKit
class Headle: NSObject {
func getNewsData(channel:String,startSum:Int) -> Void {
var urlStr = "http://api.jisuapi.com/news/get?channel=头条&start=0&num=10&appkey=de394933e1a3e2db"
urlStr = urlStr.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlFragmentAllowed)!
let url = URL(string: urlStr)
let red = URLRequest(url: url!, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 10.0)
let task:URLSessionDataTask = URLSession.shared.dataTask(with: red) { (data, response, error) in
if error != nil{
return
}
let jsonData = try? JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.allowFragments)
_ = (jsonData as! NSDictionary) .value(forKey: "status")as! String
_ = (jsonData as! NSDictionary).value(forKey: "msg") as! String
let result = (jsonData as! NSDictionary).value(forKey: "result") as! NSDictionary
let list = (result.value(forKey: "list") as! NSArray)
var arr:[Model] = []
for item in list{
let dic = (item as! NSDictionary)
let oneNew = Model()
oneNew.title = dic.value(forKey: "title")as!String
oneNew.pic = dic.value(forKey: "pic")as!String
oneNew.weburl = dic.value(forKey: "weburl")as!String
arr.append(oneNew)
}
}
task.resume()
}
}