日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS开发简易的网易新闻页面

發布時間:2023/12/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS开发简易的网易新闻页面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IOS開發簡易的網易新聞頁面

這是簡易的網易新聞,使用swift語法去寫的

git 倉庫地址:
https://e.coding.net/lujun1/wangyijianyixinwenswiftbanben/News1.git

// // NetworkTools.swift // News // // Created by lujun on 2021/10/3. //import UIKit import Alamofireenum MethodType {case GETcase POST } class NetworkTools{//類方法class func requestData(type: MethodType,urlString: String, parameters: [String : Any]? = nil,finishedCallback : @escaping ( _ results : Any) -> ()){ // let type1 = type==MethodType.GET ? ".get" : ".post"if(type==MethodType.GET){Alamofire.AF.request(urlString).responseJSON { (response) inswitch response.result {case .success(let json):finishedCallback(json)breakcase .failure(let error):print("error:\(error)")break}}}if(type==MethodType.POST){Alamofire.AF.request(urlString, method: .post, parameters: parameters).responseJSON { (response) inswitch response.result {case .success(let json):finishedCallback(json)breakcase .failure(let error):print("error:\(error)")break}}}}//類方法class func requestDataWithParam(type: MethodType,urlString: String, parameters: [String : Any],finishedCallback : @escaping ( _ results : Any) -> ()){AF.request(urlString, parameters: parameters).responseJSON { (response) inswitch response.result {case .success(let json):finishedCallback(json)breakcase .failure(let error):print("error:\(error)")break}}} } import UIKitclass NewsModel: NSObject {@objc var title: String? // var title: String = ""@objc var replyCount: Int = 0@objc var source: String?@objc var imgsrc: String?//有參構造 KVCinit(dict: [String : Any]){super.init()setValuesForKeys(dict)}override func setValue(_ value: Any?, forUndefinedKey key: String) {} } // // ViewController.swift // News1 // // Created by lujun on 2021/10/3. //import UIKit private let kCellID: String = "kCellID" class ViewController: UIViewController {private lazy var newsModel: [NewsModel] = [NewsModel]()private lazy var tableView: UITableView = {let tableView = UITableView()tableView.frame = self.view.boundstableView.dataSource = selftableView.register(UINib(nibName: "NewsViewCell", bundle: nil), forCellReuseIdentifier: kCellID)tableView.rowHeight = 90 // tableView.register(UITableViewCell.self, forCellReuseIdentifier: kCellID)return tableView}()override func viewDidLoad() {super.viewDidLoad()setupNavigationBar()loadData()self.view.addSubview(tableView)}} extension ViewController {private func setupNavigationBar (){navigationController?.navigationBar.backgroundColor = UIColor.rednavigationItem.titleView = UIImageView(image: UIImage(named: "navigation_logo"))navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "navigation_search"), style: .plain, target: self, action: #selector(click))}@objc private func click(){print("---")} } extension ViewController {private func loadData(){let data = NSDate()let d = data.timeIntervalSince1970//1633316114//1348649079062print("\(d)")NetworkTools.requestData(type: .GET, urlString: "http://c.m.163.com/nc/article/list/T1348649079062/0-20.html", parameters: nil) { results in // print(results) // let b = (results as AnyObject).write(toFile:"/Users/lujun/Desktop/lujun.plist",atomically: true) // print(b)guard let resultDict = results as? [String : Any] else {return}guard let dataArray = resultDict["T1348649079062"] as?[[String : Any]] else{ return }for dict in dataArray {let newMdoel = NewsModel(dict: dict)self.newsModel.append(newMdoel)} // let news1: NewsModel = self.newsModel.first! // print(news1.title!)self.tableView.reloadData()}} } extension ViewController : UITableViewDataSource {func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {return newsModel.count}func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {let cell = tableView.dequeueReusableCell(withIdentifier: kCellID, for: indexPath) as! NewsViewCellcell.newsModel = newsModel[indexPath.row]// cell.textLabel?.text = "\(indexPath.row)"return cell} } import UIKit import Kingfisher class NewsViewCell: UITableViewCell {@IBOutlet weak var titleLabel: UILabel!@IBOutlet weak var replyCountLabel: UILabel!@IBOutlet weak var sourceLabel: UILabel!@IBOutlet weak var iconImageView: UIImageView!var newsModel: NewsModel?{didSet{ //監聽屬性方法titleLabel.text = newsModel?.titlereplyCountLabel.text = "\(newsModel?.replyCount ?? 0)在線"sourceLabel.text = newsModel?.sourcelet url = URL(string: newsModel?.imgsrc ?? "")iconImageView.kf.setImage(with: url, placeholder: UIImage(named: "launchScreen_bottom_icon_wc"), options: nil, completionHandler: nil) // iconImageView.layer.cornerRadius = 10iconImageView.layer.masksToBounds = true}} }

總結

以上是生活随笔為你收集整理的IOS开发简易的网易新闻页面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。