You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

275 lines
9.9 KiB

//
// ProblemViewController.m
// LekangGuard
//
// Created by ecell on 2022/12/30.
//
#import "ProblemViewController.h"
#import "ProblemTableViewCell.h"
#import "ProblemCollectionViewCell.h"
#import "ProblemTableViewController.h"
#import "ProblemDetailsViewController.h"
#import "ProblemDetailsViewController.h"
@interface ProblemViewController ()<WSLWaterFlowLayoutDelegate,UICollectionViewDelegate,UICollectionViewDataSource>
@property (nonatomic ,strong) UIView *topView;
@property (nonatomic ,strong) UIView *headerView;
@property (nonatomic ,strong) CommonTableView *problemTable;
@property (nonatomic, assign) WSLWaterFlowLayoutStyle flowLayoutStyle;
@property (nonatomic ,strong) UICollectionView *menuCollectionView;
@property (nonatomic ,strong) NSMutableArray *titleArr;
@end
@implementation ProblemViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.zx_navTitle = GJText(@"常见问题");
[self SubTopView];
[self.view addSubview:self.problemTable];
[self GetHotMessage];
}
#pragma mark 查询热点问题
/// 查询热点问题
- (void)GetHotMessage
{
[self.modelListArr removeAllObjects];
[UICommon MessageUpload:@"加载中"];
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[[[APIManager sharedManager] APGET:HotMessage_URL parameters:parameters resultClass:nil] subscribeNext:^(NSArray *arr) {
self.problemTable.frame = CGRectMake(20, self.topView.bottom, SCREEN_WIDTH-40, arr.count*Adapted(48));
for (NSDictionary *dic in arr)
{
ProblemModel *model = [ProblemModel yy_modelWithJSON:dic];
[self.modelListArr addObject:model];
}
self.problemTable.cellRow = arr.count;
[self.problemTable reloadData];
// [self GetMessageCategory];
} error:^(NSError * _Nullable error) {
NSDictionary *dic = error.userInfo;
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]];
}];
}
#pragma mark 查询问题分类
/// 查询问题分类
- (void)GetMessageCategory
{
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[[[APIManager sharedManager] APGET:MessageCategory_URL parameters:parameters resultClass:nil] subscribeNext:^(NSArray *arr) {
self.titleArr = [NSMutableArray new];
for (NSDictionary *dic in arr)
{
ProblemModel *model = [ProblemModel yy_modelWithJSON:dic];
[self.titleArr addObject:model];
}
[self SubHeaderView];
[self subCollectionView];
[self.menuCollectionView reloadData];
[UICommon HidenLoading];
} error:^(NSError * _Nullable error) {
NSDictionary *dic = error.userInfo;
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]];
}];
}
- (void)subCollectionView
{
WSLWaterFlowLayout *FlowLayout = [[WSLWaterFlowLayout alloc] init];
FlowLayout.delegate = self;
FlowLayout.flowLayoutStyle = self.flowLayoutStyle;
_menuCollectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(20, self.headerView.bottom+10, SCREEN_WIDTH-40, SCREEN_HEIGHT-self.headerView.bottom-20) collectionViewLayout:FlowLayout];
_menuCollectionView.backgroundColor = KKClearColor;
_menuCollectionView.dataSource = self;
_menuCollectionView.delegate = self;
_menuCollectionView.showsVerticalScrollIndicator = NO;
_menuCollectionView.alwaysBounceVertical = NO;
_menuCollectionView.scrollEnabled = NO;
if (@available(iOS 11.0, *))
_menuCollectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
[_menuCollectionView registerClass:ProblemCollectionViewCell.class forCellWithReuseIdentifier:NSStringFromClass(ProblemCollectionViewCell.class)];
[self.view addSubview:_menuCollectionView];
}
#pragma mark - WSLWaterFlowLayoutDelegate
//返回每个item大小
- (CGSize)waterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake((SCREEN_WIDTH-45)/3, Adapted(50));
}
/** 头视图Size */
-(CGSize )waterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout sizeForHeaderViewInSection:(NSInteger)section
{
return CGSizeMake(SCREEN_WIDTH, 0);
}
/** 列数*/
-(CGFloat)columnCountInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout
{
return 3;
}
/** 列间距*/
-(CGFloat)columnMarginInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout
{
return 3;
}
/** 行间距*/
-(CGFloat)rowMarginInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout
{
return 3;
}
/** 边缘之间的间距*/
-(UIEdgeInsets)edgeInsetInWaterFlowLayout:(WSLWaterFlowLayout *)waterFlowLayout
{
return UIEdgeInsetsMake(5, 0, 5, 0);
}
#pragma mark - UICollectionView数据源
//组个数
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
//组内成员个数
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return self.titleArr.count;
}
//设置元素内容
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
ProblemCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(ProblemCollectionViewCell.class) forIndexPath:indexPath];
ProblemModel *model = self.titleArr[indexPath.row];
cell.titleText = model.categoryName;
return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
ProblemModel *model = self.titleArr[indexPath.row];
ProblemTableViewController *vc = [ProblemTableViewController new];
vc.titleStr = model.categoryName;
vc.pModel = model;
[self.navigationController pushViewController:vc animated:YES];
}
- (CommonTableView *)problemTable
{
if (!_problemTable)
{
kWeakSelf(self)
_problemTable = [[CommonTableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain cellHeight:48 cellRow:0 isAdaptive:NO isLine:YES commonCell:ProblemTableViewCell.class createCell:^(ZZTableViewCell * _Nonnull cells, NSIndexPath * _Nonnull indexPath) {
ProblemTableViewCell *cell = (ProblemTableViewCell *)cells;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
if (indexPath.row < weakself.modelListArr.count)
{
ProblemModel *model = weakself.modelListArr[indexPath.row];
cell.cenText = model.content;
}
} selectedCell:^(UITableView * _Nonnull tableView, NSIndexPath * _Nonnull indexPath) {
ProblemModel *model = weakself.modelListArr[indexPath.row];
ProblemDetailsViewController *vc = [ProblemDetailsViewController new];
vc.pModel = model;
[weakself.navigationController pushViewController:vc animated:YES];
} DidscrollView:^(UIScrollView * _Nonnull scrollView) {
}];
_problemTable.backgroundColor = KKWhiteColorColor;
[UICommon setExtraCellLineHidden:_problemTable];
}
return _problemTable;
}
- (void)SubTopView
{
self.topView = [UIView new];
self.topView.frame = CGRectMake(20, iPhoneX_NavHeight+20, SCREEN_WIDTH-40, Adapted(46));
self.topView.backgroundColor = KKWhiteColorColor;
[self.view addSubview:self.topView];
UIImageView *leftImg = [UICommon ui_imageView:CGRectZero fileName:@"icon_hot_issue"];
[self.view addSubview:leftImg];
[leftImg mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view).offset(15);
make.top.equalTo(self.topView).offset(10);
make.size.mas_equalTo(CGSizeMake(Adapted(leftImg.image.size.width), Adapted(leftImg.image.size.height)));
}];
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontADA_(12) textColor:KKWhiteColorColor text:GJText(@"常见问题") Radius:0];
[self.view addSubview:titleLabel];
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.topView).offset(10);
make.centerY.equalTo(leftImg);
}];
UIButton *moreBtn = [UICommon ui_buttonSimple:CGRectZero font:FontADA_(13) normalColor:KKGrey143 normalText:GJText(@"更多") click:^(id x) {
ProblemTableViewController *vc = [ProblemTableViewController new];
vc.titleStr = GJText(@"热门问题");
[self.navigationController pushViewController:vc animated:YES];
vc.modelArr = self.modelListArr;
}];
[self.topView addSubview:moreBtn];
[moreBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.topView.mas_right);
make.centerY.equalTo(leftImg);
make.size.mas_equalTo(CGSizeMake(60, Adapted(leftImg.image.size.height)));
}];
}
- (void)SubHeaderView
{
_headerView = [UIView new];
_headerView.backgroundColor = KKClearColor;
_headerView.frame = CGRectMake(20, self.problemTable.bottom+20, SCREEN_WIDTH-40, 20);
[self.view addSubview:_headerView];
UIImageView *line = [UIImageView new];
line.frame = CGRectMake(0, 2.5, 3, 15);
line.backgroundColor = KKMainColor;
[_headerView addSubview:line];
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontADA_(13) textColor:KKTextBlackColor text:GJText(@"问题分类") Radius:0];
[_headerView addSubview:titleLabel];
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(line).offset(10);
make.centerY.equalTo(line);
}];
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end