
主要变更: 1. 从 AppDelegate 中移除 Core Data 相关的属性和方法,简化应用结构。 2. 新增 EPBaseListViewController 作为消息列表的基础类,提供通用的表视图功能。 3. 添加 EPMessageListVC、EPFriendListVC、EPFollowingListVC 和 EPFansListVC,分别用于展示消息、朋友、关注和粉丝列表。 4. 引入 EPMessageSegmentView 以支持消息主界面的分段控制。 此更新旨在提升代码的可维护性,简化数据管理,并增强用户界面的功能性和交互性。
55 lines
1.6 KiB
Swift
55 lines
1.6 KiB
Swift
//
|
|
// EPBaseListViewController.swift
|
|
// YuMi
|
|
//
|
|
// A lightweight table-view base class used by EP Message subpages.
|
|
//
|
|
|
|
import UIKit
|
|
import SnapKit
|
|
|
|
class EPBaseListViewController<Cell: UITableViewCell>: UIViewController, UITableViewDataSource, UITableViewDelegate {
|
|
let tableView = UITableView(frame: .zero, style: .plain)
|
|
var itemsCount: Int = 0 { didSet { tableView.reloadData() } }
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
view.backgroundColor = UIColor(named: "ep.background.dark") ?? UIColor.black.withAlphaComponent(0.9)
|
|
|
|
tableView.backgroundColor = .clear
|
|
tableView.separatorStyle = .none
|
|
tableView.showsVerticalScrollIndicator = false
|
|
tableView.dataSource = self
|
|
tableView.delegate = self
|
|
tableView.rowHeight = 72
|
|
tableView.contentInsetAdjustmentBehavior = .never
|
|
tableView.keyboardDismissMode = .onDrag
|
|
tableView.register(Cell.self, forCellReuseIdentifier: "cell")
|
|
|
|
view.addSubview(tableView)
|
|
tableView.snp.makeConstraints { make in
|
|
make.edges.equalTo(view.safeAreaLayoutGuide)
|
|
}
|
|
}
|
|
|
|
// MARK: - UITableViewDataSource
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
return itemsCount
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! Cell
|
|
cell.backgroundColor = .clear
|
|
return cell
|
|
}
|
|
|
|
// MARK: - Helpers
|
|
func simulateItems(_ count: Int) {
|
|
itemsCount = count
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|