// 1. 首先创建一个swift工程 在创建两个继承与UIviewcontroller的类
// 2. 在APPdelegate里面改变主视图
// APPdelegate里写:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let mainView = MainViewController() // 新建的类
let mainNav = UINavigationController.init(rootViewController: mainView)
mainNav.tabBarItem.title = "我的"
let assistan = AssistantViewController() // 新建的类
let assNav = UINavigationController.init(rootViewController: assistan)
assNav.tabBarItem.title = "你的"
let tabBar = UITabBarController() // 添加tabbar
tabBar.viewControllers = [mainNav,assNav]
self.window?.rootViewController = tabBar // 改变主视图
return true
}
// 新建一个继承tablviewcell的类:
class MainTableViewCell: UITableViewCell {
var titlelable :UILabel?
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super .init(style: style, reuseIdentifier: reuseIdentifier)
self.titlelable = UILabel()
self.addSubview(self.titlelable!)
setupView()
}
// 定义位置
func setupView() {
self.titlelable?.frame = CGRect(x: 10, y: 5, width:SRC_W - 5 , height: 30)
self.titlelable?.font = UIFont .systemFont(ofSize: 14.0)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// 在你新建的其中一个类中写:
import UIKit
let SRC_W = UIScreen.main.bounds.size.width // 宏定义
let SRC_H = UIScreen.main.bounds.size.height
var swiftM = SwiftModel()
class MainViewController: UIViewController ,UITableViewDelegate,UITableViewDataSource{
// MARK: pragma mark ======================= 返回表格的行数 ================
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return (tableArr?.count)!
}
// MARK: pragma mark ======================= 表格的cell ================
// 自定义cell的重用
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell :MainTableViewCell! = tableView.dequeueReusableCell(withIdentifier: "cell") as? MainTableViewCell
if cell == nil{
cell = MainTableViewCell(style: .subtitle, reuseIdentifier: "MainTableViewCell")
}
swiftM = tableArr![indexPath.row] as! SwiftModel
print("11pppppp\(swiftM.title)")
cell.titlelable?.text = swiftM.title
return cell
}
// MARK: pragma mark ======================= 创建表格 ================
var tableview:UITableView?
var tableArr:NSArray?
override func viewDidLoad() {
super.viewDidLoad()
tableview = UITableView(frame: self.view.frame, style: .plain)
tableview?.delegate = self
tableview?.dataSource = self
// self.tableview?.register(UINib.init(nibName: "MainTableViewCell", bundle: nil), forCellReuseIdentifier: "cell")
self.view.addSubview(tableview!)
}
// MARK: pragma mark ======================= 请求数据 ================
override func viewWillAppear(_ animated: Bool) {
self .requestNetWorlDataAndUpdata()
}
// MARK: pragma mark ========================== json解析 ==================
func requestNetWorlDataAndUpdata() -> Void {
var jsonarr = NSArray()
// 这里的路径是你自己写的路径
jsonarr = NSArray(contentsOfFile: Bundle.main.path(forResource: "News", ofType: "plist")!)!
tableArr = swiftM.creatNewsArray(newArr: jsonarr) as? NSMutableArray
self.tableview?.reloadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
// 创建一个继承与nsobject的model类
import UIKit
class SwiftModel: NSObject {
var title = String()
var content = String()
func creatNewsArray(newArr:NSArray) -> NSArray {
let musarr = NSMutableArray.init()
var dic:[String:Any]
// 从你自己写的数据中遍历出数组
for item in newArr{
let swift = SwiftModel()
dic = item as? NSDictionary as! [String : Any]
swift.title = dic["title"] as! String
swift.content = dic["content"] as! String
musarr .add(swift)
}
return musarr
}