123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- //
- // BSSMainViewController.swift
- // O2Platform
- //
- // Created by 刘振兴 on 2016/11/3.
- // Copyright © 2016年 zoneland. All rights reserved.
- //
- import UIKit
- import Alamofire
- import AlamofireImage
- import AlamofireObjectMapper
- import SwiftyJSON
- import ObjectMapper
- import CocoaLumberjack
- private let reuseHeaderIdentifier = "BBSHeaderCollectionReusableView"
- private let reuseCellIdentifier = "BBSForumCell"
- class BSSMainViewController: UIViewController {
- @IBOutlet weak var collectionView: UICollectionView!
-
- //分区及板块数据集
- var bbsForums:[BBSForumListData] = []
-
- fileprivate static var ItemLineCount:Int {
- if UIDevice.deviceModelReadable() == "iPhone 5S" || UIDevice.deviceModelReadable() == "iPhone 5" || UIDevice.deviceModelReadable() == "iPhone SE" {
- return 3
- }else{
- return 4
- }
- }
-
- fileprivate let ItemSize = Double(SCREEN_WIDTH)/Double(ItemLineCount)
-
-
- override func viewDidLoad() {
- super.viewDidLoad()
- self.collectionView.dataSource = self
- self.collectionView.delegate = self
- self.loadForumDataAndSectionData()
- }
-
- func loadForumDataAndSectionData(){
- self.bbsForums.removeAll()
- let url = AppDelegate.o2Collect.generateURLWithAppContextKey(BBSContext.bbsContextKey, query: BBSContext.getCategoryAndSectionQuery, parameter: nil)
- AF.request(url!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { (response) in
- switch response.result {
- case .success(let val):
- let type = JSON(val)["type"]
- if type == "success" {
- let forumsJSON:[BBSForumListData] = Mapper<BBSForumListData>().mapArray(JSONString: JSON(val)["data"].description)!
- self.bbsForums.append(contentsOf: forumsJSON)
- }else{
- DDLogError(JSON(val).description)
- }
- case .failure(let err):
- DDLogError(err.localizedDescription)
- }
- self.collectionView.reloadData()
- }
- }
-
- @IBAction func backToSuper(_ sender: UIBarButtonItem) {
- let backType = AppConfigSettings.shared.appBackType
- if backType == 1 {
- self.performSegue(withIdentifier: "backToMain", sender: nil)
- }else if backType == 2 {
- self.performSegue(withIdentifier: "backToApps", sender: nil)
- }
- }
-
-
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- }
-
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- if segue.identifier == "showSectionSubjectSegue" {
- let destVC = segue.destination as! BBSSubjectListViewController
- destVC.sectionData = sender as? BBSectionListData
- }
- }
-
- }
- extension BSSMainViewController:UICollectionViewDataSource{
- func numberOfSections(in collectionView: UICollectionView) -> Int {
- return bbsForums.count
- }
-
-
- func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
- return bbsForums[section].sectionInfoList?.count ?? 0
- }
-
- func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
- let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseCellIdentifier, for: indexPath) as! BBSForumCell
- let sectionData = bbsForums[(indexPath as NSIndexPath).section].sectionInfoList![(indexPath as NSIndexPath).row]
- cell.bbsSectionData = sectionData
- return cell
- }
-
- func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
- if kind == UICollectionView.elementKindSectionHeader {
- let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: reuseHeaderIdentifier, for: indexPath) as! BBSHeaderCollectionReusableView
- let forumData = bbsForums[(indexPath as NSIndexPath).section]
- headerView.bbsForumData = forumData
- headerView.backgroundColor = UIColor.white
- headerView.alpha = 0.7
- return headerView
- }else{
- return UICollectionReusableView(frame: CGRect(x: 0,y: 0,width: SCREEN_WIDTH,height: 1))
- }
- }
-
- }
- extension BSSMainViewController:UICollectionViewDelegateFlowLayout{
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
- return CGSize(width: CGFloat(ItemSize-1),height: CGFloat(ItemSize-1))
- }
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
- return UIEdgeInsets(top: 1, left: 1, bottom: 1, right: 1)
- }
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
- return CGSize(width: SCREEN_WIDTH,height: 40)
- }
-
- func collectionView(_ collectionView:UICollectionView,layout collectionViewLayout:UICollectionViewLayout,referenceSizeForFooterInSection section: Int) -> CGSize {
- return CGSize(width: 0,height: 0)
- }
-
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
- return 0.0
- }
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
- return 0.0
- }
-
- func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
- DDLogDebug("cell clicked")
- let sectionData = bbsForums[(indexPath as NSIndexPath).section].sectionInfoList![(indexPath as NSIndexPath).row]
- self.performSegue(withIdentifier: "showSectionSubjectSegue", sender: sectionData)
- }
- }
|