生活随笔
收集整理的這篇文章主要介紹了
IOS开发简易的网易新闻页面
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
IOS開(kāi)發(fā)簡(jiǎn)易的網(wǎng)易新聞頁(yè)面
這是簡(jiǎn)易的網(wǎng)易新聞,使用swift語(yǔ)法去寫的
git 倉(cāng)庫(kù)地址:
https://e.coding.net/lujun1/wangyijianyixinwenswiftbanben/News1.git
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) -> ()){
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?
@objc var replyCount
: Int = 0@objc var source
: String?@objc var imgsrc
: String?init(dict
: [String : Any]){super.init()setValuesForKeys(dict
)}override func setValue(_ value
: Any?, forUndefinedKey key
: String) {}
}
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
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
print("\(d)")NetworkTools.requestData(type
: .GET, urlString
: "http://c.m.163.com/nc/article/list/T1348649079062/0-20.html", parameters
: nil) { results
in
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
)}
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
]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
?.source
let url
= URL(string
: newsModel
?.imgsrc
?? "")iconImageView
.kf
.setImage(with
: url
, placeholder
: UIImage(named
: "launchScreen_bottom_icon_wc"), options
: nil, completionHandler
: nil)
iconImageView
.layer
.masksToBounds
= true}}
}
總結(jié)
以上是生活随笔為你收集整理的IOS开发简易的网易新闻页面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。