CommunityRecommnendViewController.swift 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. //
  2. // CommunityRecommnendViewController.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/6/28.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. import JXSegmentedView
  10. import Kingfisher
  11. class CommunityRecommnendViewController: UIViewController {
  12. deinit {
  13. NXLLog("deinit")
  14. if observe != nil {
  15. NotificationCenter.default.removeObserver(observe!)
  16. }
  17. }
  18. weak var observe : NSObjectProtocol?
  19. var communityRecommendDataModels = Array<CommunityRecommendDataModel>()
  20. /// 评论需要的模型
  21. var communityRecommendDataModel : CommunityRecommendDataModel?
  22. override func viewDidLoad() {
  23. super.viewDidLoad()
  24. setupViews()
  25. setupLayouts()
  26. setupData()
  27. }
  28. func setupViews() {
  29. view.backgroundColor = kf7f8faColor
  30. view.addSubview(tableView)
  31. }
  32. func setupLayouts() {
  33. tableView.snp.makeConstraints { (make) in
  34. make.top.left.right.equalToSuperview()
  35. make.height.equalTo(kScreenHeight-48-kNavBarTotalHeight-kTabBarTotalHeight)
  36. }
  37. tableView.reloadData()
  38. }
  39. func setupData() {
  40. //下拉刷新
  41. tableView.addHeader(withBeginRefresh: true, animation: true) {
  42. [weak self] (page) in
  43. self?.communityPostSuggestApi(page:page)
  44. }
  45. tableView.addAutoNormalFooter(withAutomaticallyRefresh: true, loadMoreBlock: {
  46. [weak self] (page) in
  47. self?.communityPostSuggestApi(page:page)
  48. })
  49. observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("followApi"), object: nil, queue: OperationQueue.main) { [weak self] (notification) in
  50. let followStatusModel = notification.object as? FollowStatusModel
  51. if !(self?.communityRecommendDataModels.isEmpty ?? true) {
  52. for communityRecommendDataModel in (self?.communityRecommendDataModels)! {
  53. if communityRecommendDataModel.uid == followStatusModel?.uid {
  54. communityRecommendDataModel.isFollow = followStatusModel?.isFollowStatus
  55. }
  56. }
  57. }
  58. self?.tableView.reloadData()
  59. }
  60. observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("unlikeApi"), object: nil, queue: OperationQueue.main) { [weak self] (notification) in
  61. let followStatusModel = notification.object as? FollowStatusModel
  62. if !(self?.communityRecommendDataModels.isEmpty ?? true) {
  63. for communityRecommendDataModel in (self?.communityRecommendDataModels)! {
  64. if communityRecommendDataModel.id == followStatusModel?.postId {
  65. communityRecommendDataModel.isDislike = followStatusModel?.isFollowStatus
  66. }
  67. }
  68. }
  69. self?.tableView.reloadData()
  70. }
  71. observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("islikeApi"), object: nil, queue: OperationQueue.main) { [weak self] (notification) in
  72. let followStatusModel = notification.object as? FollowStatusModel
  73. if !(self?.communityRecommendDataModels.isEmpty ?? true) {
  74. for communityRecommendDataModel in (self?.communityRecommendDataModels)! {
  75. if communityRecommendDataModel.id == followStatusModel?.postId {
  76. communityRecommendDataModel.isLike = followStatusModel?.isFollowStatus
  77. }
  78. }
  79. }
  80. self?.tableView.reloadData()
  81. }
  82. observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("isCollectApi"), object: nil, queue: OperationQueue.main) { [weak self] (notification) in
  83. let followStatusModel = notification.object as? FollowStatusModel
  84. if !(self?.communityRecommendDataModels.isEmpty ?? true) {
  85. for communityRecommendDataModel in (self?.communityRecommendDataModels)! {
  86. if communityRecommendDataModel.id == followStatusModel?.postId {
  87. communityRecommendDataModel.isCollect = followStatusModel?.isFollowStatus
  88. }
  89. }
  90. }
  91. self?.tableView.reloadData()
  92. }
  93. observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("communityDeletePostApi"), object: nil, queue: OperationQueue.main) { [weak self] (notification) in
  94. let postId = notification.object as? Int
  95. if !(self?.communityRecommendDataModels.isEmpty ?? true) {
  96. for (index,communityRecommendDataModel) in (self?.communityRecommendDataModels)!.enumerated() {
  97. if communityRecommendDataModel.id == postId {
  98. self?.communityRecommendDataModels.remove(at: index)
  99. }
  100. }
  101. self?.tableView.reloadData()
  102. }
  103. }
  104. observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("CommunityModuleRecommendTop"), object: nil, queue: OperationQueue.main, using: {
  105. [weak self] (notification) in
  106. if self?.tableView.contentOffset == CGPoint(x: 0, y: 0) {
  107. self?.tableView.mj_header.beginRefreshing()
  108. }else {
  109. self?.tableView.scrollToTop()
  110. }
  111. })
  112. }
  113. private lazy var tableView: UITableView = {
  114. let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
  115. tableView.separatorStyle = .none
  116. tableView.backgroundColor = kf7f8faColor
  117. tableView.dataSource = self
  118. tableView.delegate = self
  119. tableView.estimatedRowHeight = 0
  120. tableView.estimatedSectionFooterHeight = 0
  121. tableView.estimatedSectionHeaderHeight = 0
  122. return tableView
  123. }()
  124. private lazy var followTableHeaderView: CommunityFollowTableHeaderView = {
  125. let followTableHeaderView = CommunityFollowTableHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 286))
  126. return followTableHeaderView
  127. }()
  128. /// 显示键盘
  129. func showKeyBoardCommentView() {
  130. KeyBoardInputView.show(inputViewResultClosure: {
  131. [weak self] (text) in
  132. self?.communityPostCommentApi(text: text, complete: {
  133. [weak self] in
  134. self?.communityRecommendDataModel = nil
  135. })
  136. }) {
  137. [weak self] in
  138. self?.communityRecommendDataModel = nil
  139. }
  140. }
  141. override func didReceiveMemoryWarning() {
  142. KingfisherManager.shared.cache.clearDiskCache()
  143. KingfisherManager.shared.cache.clearMemoryCache()
  144. }
  145. }
  146. extension CommunityRecommnendViewController {
  147. /// 推荐feed流
  148. ///
  149. /// - Parameter page: 分页
  150. func communityPostSuggestApi(page:Int) {
  151. SwiftMoyaNetWorkServiceCommunity.shared().communityPostSuggestApi(page:page,completion: {
  152. [weak self] (communityRecommendFeedModel) -> (Void) in
  153. DIYEmptyView.emptyNoDataTableView(tableView: self?.tableView)
  154. let communityRecommendFeedModel = communityRecommendFeedModel as? CommunityRecommendFeedModel
  155. if communityRecommendFeedModel?.pagination?.currentPage == 1{
  156. self?.communityRecommendDataModels.removeAll()
  157. self?.tableView.resetNoMoreData()
  158. }
  159. self?.communityRecommendDataModels = (self?.communityRecommendDataModels)! + (communityRecommendFeedModel?.data!)!
  160. self?.tableView.reloadData()
  161. MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, pagination: communityRecommendFeedModel?.pagination)
  162. }) {
  163. [weak self] (loadingStatus) in
  164. MJRefreshManager.hiddenHeaderWithFooterNONetWork(tableView: self?.tableView)
  165. }
  166. }
  167. /// 评论
  168. func communityPostCommentApi(text:String,complete:@escaping () -> ()) {
  169. let communityCustomCommnetModel = CommunityCustomCommnetModel()
  170. communityCustomCommnetModel.postId = communityRecommendDataModel?.id ?? 0
  171. communityCustomCommnetModel.content = text
  172. SwiftMoyaNetWorkServiceCommunity.shared().communityPostCommentApi(communityCustomCommnetModel: communityCustomCommnetModel) {
  173. [weak self] (communityPostCommentIdModel) -> (Void) in
  174. let communityPostCommentIdModel = communityPostCommentIdModel as? CommunityPostCommentIdModel
  175. let communityRecommendCommentModel = CommunityRecommendCommentModel()
  176. communityRecommendCommentModel.content = text
  177. communityRecommendCommentModel.id = communityPostCommentIdModel?.id
  178. communityRecommendCommentModel.username = UserModel.shared().getModel()?.username
  179. if self?.communityRecommendDataModel?.comment?.isEmpty ?? true {
  180. self?.communityRecommendDataModel?.comment = Array<CommunityRecommendCommentModel>()
  181. }
  182. self?.communityRecommendDataModel?.comment?.insert(communityRecommendCommentModel, at: 0)
  183. VirusViewModel.shared.comment(communityRecommendDataModel: self?.communityRecommendDataModel, id: communityPostCommentIdModel?.id ?? 0,content: text)
  184. let count = (1 + (self?.communityRecommendDataModel?.commentCount ?? 0))
  185. self?.communityRecommendDataModel?.commentCount = count
  186. self?.tableView.reloadData()
  187. complete()
  188. }
  189. }
  190. /// 删除帖子
  191. func communityDeleteApi(postId:Int,section:Int) {
  192. SwiftMoyaNetWorkServiceCommunity.shared().communityDeleteApi(postId: postId) { [weak self] (data) -> (Void) in
  193. self?.communityRecommendDataModels.remove(at: section)
  194. self?.tableView.reloadData()
  195. }
  196. }
  197. }
  198. extension CommunityRecommnendViewController : UITableViewDelegate,UITableViewDataSource {
  199. func numberOfSections(in tableView: UITableView) -> Int {
  200. return communityRecommendDataModels.isEmpty ? 0 : communityRecommendDataModels.count
  201. }
  202. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  203. let communityRecommendDataModel = communityRecommendDataModels[section]
  204. if CommunityPostSuggestType(rawValue: communityRecommendDataModel.showType ?? "") == .post {
  205. return 6
  206. }else {
  207. return 1
  208. }
  209. }
  210. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  211. let communityRecommendDataModel = communityRecommendDataModels[indexPath.section]
  212. let communityPostSuggestCType = CommunityPostSuggestType(rawValue: communityRecommendDataModel.showType ?? "")
  213. switch communityPostSuggestCType {
  214. case .banner?: //banner
  215. let cell = CommunityBannerTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  216. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  217. cell.communityRecommendTypeDataModels = communityRecommendDataModel.data
  218. }
  219. return cell
  220. case .user?: //推荐用户
  221. let cell = CommunityRecommendFollowTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  222. cell.type = .recommend
  223. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  224. cell.communityRecommendTypeDataModels = communityRecommendDataModel.data
  225. cell.followClosure1 = {
  226. [weak self] (isFollow,communityRecommendTypeDataModel) in
  227. for (_,model) in (self?.communityRecommendDataModels.enumerated())! {
  228. let communityPostSuggestCType = CommunityPostSuggestType(rawValue: model.showType ?? "")
  229. if communityPostSuggestCType == .post {
  230. if model.uid == communityRecommendTypeDataModel.uid {
  231. model.isFollow = isFollow
  232. tableView.reloadData()
  233. }
  234. }
  235. }
  236. }
  237. }
  238. return cell
  239. case .video?: //推荐视频
  240. let cell = PopularVideoTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  241. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  242. cell.communityRecommendTypeDataModels = communityRecommendDataModel.data
  243. }
  244. return cell
  245. case .topic?: //推荐话题
  246. let cell = FeaturedTopicsTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  247. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  248. cell.communityRecommendTypeDataModels = communityRecommendDataModel.data
  249. }
  250. return cell
  251. case .post?: //贴子
  252. switch indexPath.row {
  253. //贴子用户
  254. case 0:
  255. let cell = CardContentUserTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  256. cell.communityRecommendDataModel = communityRecommendDataModel
  257. cell.followClosure = {
  258. [weak self] in
  259. CommunityFollowUserViewModel.shared.follow(communityRecommendDataModel: communityRecommendDataModel, communityRecommendDataModels: (self?.communityRecommendDataModels)!, tableView: tableView)
  260. }
  261. cell.likeClosure = { y in
  262. if UserModel.shared().isEqualUid(uid: communityRecommendDataModel.uid ?? 0) {
  263. CardContentUserDeleteView.sheetDeleteView(y: y, sureClosure: { [weak self] (cardContentUserDeleteView) in
  264. self?.communityDeleteApi(postId: communityRecommendDataModel.id ?? 0, section: indexPath.section)
  265. })
  266. }else {
  267. VirusViewModel.shared.like(communityRecommendDataModel: communityRecommendDataModel, y: y, tableView: tableView)
  268. }
  269. }
  270. return cell
  271. //图片视频
  272. case 1:
  273. let cell = CardContentPicVideoTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  274. cell.type = .recommend
  275. cell.communityRecommendDataModel = communityRecommendDataModel
  276. return cell
  277. //内容标题
  278. case 2:
  279. let cell = CardContentTitleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  280. cell.communityRecommendDataModel = communityRecommendDataModel
  281. return cell
  282. //点赞,收藏,分享
  283. case 3:
  284. let cell = CardContentActionTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  285. cell.communityRecommendDataModel = communityRecommendDataModel
  286. cell.praiseClosureName = { (button:UIButton) in
  287. VirusViewModel.shared.praise(communityRecommendDataModel: communityRecommendDataModel, tableView: tableView)
  288. }
  289. cell.collectClosureName = {
  290. (button:UIButton) in
  291. VirusViewModel.shared.collection(communityRecommendDataModel: communityRecommendDataModel, tableView: tableView)
  292. }
  293. return cell
  294. //评论列表
  295. case 4:
  296. let cell = CardContentCommentListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  297. cell.communityRecommendDataModel = communityRecommendDataModel
  298. return cell
  299. //评论
  300. case 5:
  301. let cell = CardContentCommnetTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
  302. cell.addCommnetClosureName = {
  303. [weak self] in
  304. self?.communityRecommendDataModel = self?.communityRecommendDataModels[indexPath.section]
  305. self?.showKeyBoardCommentView()
  306. }
  307. return cell
  308. default:
  309. return UITableViewCell()
  310. }
  311. default:
  312. return UITableViewCell()
  313. }
  314. }
  315. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  316. let communityRecommendDataModel = communityRecommendDataModels[indexPath.section]
  317. let communityPostSuggestCType = CommunityPostSuggestType(rawValue: communityRecommendDataModel.showType ?? "")
  318. switch communityPostSuggestCType {
  319. //banner
  320. case .banner?:
  321. break
  322. //推荐用户
  323. case .user?:
  324. break
  325. //推荐视频
  326. case .video?:
  327. break
  328. //推荐话题
  329. case .topic?:
  330. break
  331. //贴子
  332. case .post?:
  333. switch indexPath.row {
  334. //贴子用户
  335. case 0:
  336. break
  337. //图片视频/内容标题/评论列表
  338. case 1,2,4:
  339. if PostType(rawValue: communityRecommendDataModel.type ?? "video") == .video {
  340. NotificationCenter.default.post(name: NSNotification.Name("CommunityContentVideoClosure"), object: communityRecommendDataModel.id)
  341. }else {
  342. NotificationCenter.default.post(name: NSNotification.Name("CommunityContentDetailClosure"), object: communityRecommendDataModel.id)
  343. }
  344. break
  345. //点赞,收藏,分享
  346. case 3:
  347. break
  348. //评论
  349. case 5:
  350. break
  351. default:
  352. break
  353. }
  354. break
  355. default:
  356. break
  357. }
  358. }
  359. func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  360. let communityRecommendDataModel = communityRecommendDataModels[indexPath.section]
  361. let communityPostSuggestCType = CommunityPostSuggestType(rawValue: communityRecommendDataModel.showType ?? "")
  362. switch communityPostSuggestCType {
  363. //banner
  364. case .banner?:
  365. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  366. return 150 * kScaleWidth
  367. }
  368. return 0
  369. //推荐用户
  370. case .user?:
  371. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  372. return 191
  373. }
  374. return 0
  375. //推荐视频
  376. case .video?:
  377. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  378. return 241
  379. }
  380. return 0
  381. //推荐话题
  382. case .topic?:
  383. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  384. return 173
  385. }
  386. return 0
  387. //贴子
  388. case .post?:
  389. switch indexPath.row {
  390. //贴子用户
  391. case 0:
  392. if communityRecommendDataModel.uid != nil {
  393. return 80
  394. }
  395. return 0
  396. //图片视频
  397. case 1:
  398. let cardContentPicVideoModel = CardContentPicVideoModel()
  399. cardContentPicVideoModel.postType = PostType(rawValue: communityRecommendDataModel.type ?? "html")
  400. let imgStr = communityRecommendDataModel.img
  401. if communityRecommendDataModel.imgs?.count ?? 0 == 0 {
  402. if communityRecommendDataModel.img != "" && communityRecommendDataModel.img != nil {
  403. cardContentPicVideoModel.number = 1
  404. cardContentPicVideoModel.width = getImageWidth(imgStr: (imgStr)!)
  405. cardContentPicVideoModel.height = getImageHeight(imgStr: (imgStr)!)
  406. return cardContentPicVideoModel.collectionViewHeight() + 15
  407. }else {
  408. return 0
  409. }
  410. }else {
  411. if communityRecommendDataModel.imgs?.count ?? 0 == 1 {
  412. if communityRecommendDataModel.img != "" || communityRecommendDataModel.img != nil {
  413. cardContentPicVideoModel.number = 1
  414. cardContentPicVideoModel.width = getImageWidth(imgStr: (imgStr)!)
  415. cardContentPicVideoModel.height = getImageHeight(imgStr: (imgStr)!)
  416. return cardContentPicVideoModel.collectionViewHeight() + 15
  417. }else {
  418. return 0
  419. }
  420. }else {
  421. cardContentPicVideoModel.number = communityRecommendDataModel.imgs?.count ?? 0
  422. return cardContentPicVideoModel.collectionViewHeight() + 15
  423. }
  424. }
  425. //内容标题
  426. case 2:
  427. var str = communityRecommendDataModel.content ?? ""
  428. str = str.replacingOccurrences(of: "\n", with: "").replacingOccurrences(of: "\r", with: "")
  429. if (communityRecommendDataModel.title == "" || communityRecommendDataModel.title == nil) {
  430. if str.count >= 45 {
  431. str = str.prefix(45) + "...更多"
  432. let contentHeight = "\(str)".heightForComment(font: kRegularFont14!, width: kScreenWidth-28)
  433. return contentHeight
  434. }else {
  435. let contentHeight = "\(str)".heightForComment(font: kRegularFont14!, width: kScreenWidth-28)
  436. return contentHeight
  437. }
  438. }else {
  439. if PostType(rawValue: communityRecommendDataModel.type ?? "html") == .html {
  440. return 22
  441. }else {
  442. if communityRecommendDataModel.content?.count ?? 0 >= 45 {
  443. str = str.prefix(45) + "...更多"
  444. let contentHeight = "\(str)".heightForComment(font: kRegularFont14!, width: kScreenWidth-28)
  445. return (22 + 6 + contentHeight)
  446. }else {
  447. let contentHeight = "\(str)".heightForComment(font: kRegularFont14!, width: kScreenWidth-28)
  448. return 22 + 6 + contentHeight
  449. }
  450. }
  451. }
  452. //点赞,收藏,分享
  453. case 3:
  454. return 54
  455. //评论列表
  456. case 4:
  457. if !(communityRecommendDataModel.comment?.isEmpty ?? true) {
  458. var height : CGFloat?
  459. for communityRecommendCommentModel in communityRecommendDataModel.comment!.prefix(2) {
  460. let nameStr = "\(communityRecommendCommentModel.username ?? ""):"
  461. let contentStr = "\(communityRecommendCommentModel.content ?? "")"
  462. let str = nameStr + contentStr
  463. let strHeight = str.heightForComment(font: kRegularFont14!, width: kScreenWidth-28)
  464. height = (height ?? 0) + strHeight + 4
  465. }
  466. if (communityRecommendDataModel.commentCount ?? 0) <= 2 {
  467. return (height ?? 0)
  468. }else {
  469. return 23 + (height ?? 0)
  470. }
  471. }
  472. return 0
  473. //评论
  474. case 5:
  475. return 58
  476. default:
  477. return 0
  478. }
  479. default:
  480. return 0
  481. }
  482. }
  483. func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
  484. let communityRecommendDataModel = communityRecommendDataModels[section]
  485. let communityPostSuggestCType = CommunityPostSuggestType(rawValue: communityRecommendDataModel.showType ?? "")
  486. switch communityPostSuggestCType {
  487. //banner
  488. case .banner?:
  489. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  490. return 0.000001
  491. }
  492. return 0.000001
  493. //推荐用户
  494. case .user?:
  495. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  496. return 62
  497. }
  498. return 0.000001
  499. //推荐视频
  500. case .video?:
  501. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  502. return 62
  503. }
  504. return 0.000001
  505. //推荐话题
  506. case .topic?:
  507. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  508. return 62
  509. }
  510. return 0.000001
  511. //贴子
  512. case .post?:
  513. return 0.000001
  514. default:
  515. return 0.000001
  516. }
  517. }
  518. func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
  519. return 10
  520. }
  521. func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
  522. let communityRecommendDataModel = communityRecommendDataModels[section]
  523. let communityPostSuggestCType = CommunityPostSuggestType(rawValue: communityRecommendDataModel.showType ?? "")
  524. let headerView = CommunityCommonSectionHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 62))
  525. switch communityPostSuggestCType {
  526. //banner
  527. case .banner?:
  528. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  529. return nil
  530. }
  531. return nil
  532. //推荐用户
  533. case .user?:
  534. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  535. headerView.communityCommonSectionHeaderViewType = .recommendFollow
  536. return headerView
  537. }
  538. return nil
  539. //推荐视频
  540. case .video?:
  541. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  542. headerView.communityCommonSectionHeaderViewType = .popularVideo
  543. headerView.communityRecommendTypeDataModels = communityRecommendDataModel.data
  544. return headerView
  545. }
  546. return nil
  547. //推荐话题
  548. case .topic?:
  549. if !(communityRecommendDataModel.data?.isEmpty ?? true) {
  550. headerView.communityCommonSectionHeaderViewType = .featuredTopics
  551. return headerView
  552. }
  553. return nil
  554. //贴子
  555. case .post?:
  556. return nil
  557. default:
  558. return nil
  559. }
  560. }
  561. func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
  562. return nil
  563. }
  564. }
  565. extension CommunityRecommnendViewController : JXSegmentedListContainerViewListDelegate {
  566. func listView() -> UIView {
  567. return view
  568. }
  569. }