iOS商品/经营类目选择视图:上部分展示已经选择的类目信息(悬浮),下部分展示待选择的类目数据列表(支持滚动选中类目)

2021-07-05 20:54:57 浏览数 (1)

  • 2.1 自定义展示已经选择的类目信息
    • 2.1.1 空心圆和实心圆
    • 2.1.2 展示已经选择的类目信息cell的核心代码ERPSelectCategoryInfoV
  • 2.2 VM 的定义
  • 2.3 类目的层级
  • 2.4 类目Model的定义
  • 3.1 处理点击事件及创建视图
    • 3.1.1 处理点击已经选择类目事件
    • 3.1.2 处理选择类目事件
    • 3.1.3 处理点击确定事件 ,传递选择的信息到发布商品控制器
    • 3.1.4 处理清除类目
  • 3.2 Demo
  • 4.1 设置tableView的点击事件优先级,低于cell的选中事件
  • 4.2 选中类目 展示选中icon
  • 4.3 怎么绘制实心圆和空心圆
  • 商户进件之【经营类目】数据
  • 商品类目测试数据

前言

下载地址:https://download.csdn.net/download/u011018979/19775162

文章地址:https://kunnan.blog.csdn.net/article/details/106553175 视频地址:https://live.csdn.net/v/167208 商品经营类目选择视图的应用场景: 1、发布商品时选择商品类目 2、商户进件选择经营类目 3、购物类app下单界面的商品类目筛选

在发布商品的时候,选择类目界面的要求视图分为上下部分。

1、 上部分:展示已经选择的类目信息,并清晰的从上倒下罗列对应层级类目信息(悬浮),点击类目的时候,下部分的展示的类目信息切换为同级类目信息供选择。 2、 下部分:展示可供选择的类目信息(支持滚动选中类目)

支持清空数据功能

在这里插入图片描述

原文地址

https://kunnan.blog.csdn.net/article/details/106553175

I、在当前视图中推出另外一个背景透明的视图控制器

UIModalPresentationOverCurrentContext

  • A presentation style where the content is displayed over another view controller’s content
代码语言:javascript复制
    tmp.modalPresentationStyle = UIModalPresentationOverCurrentContext;

  • 例子
代码语言:javascript复制
#pragma mark - ******** 显示选择商品类目视图
/**

 */
- (void)gotoSelect_commodity_category{
    NSLog(@"发布商品- 选择商品类目");

    ERPSelect_commodity_categoryViewController *tmp = [ERPSelect_commodity_categoryViewController new];

        [tmp view].backgroundColor =  [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
    // 传递类目信息
    tmp.viewModel.ProductForEditDto = self.viewModel.ProductForEditDto;
    // 设置modalPresentationStyle = UIModalPresentationOverCurrentContext
        tmp.modalPresentationStyle =UIModalPresentationOverCurrentContext;//如果在配置表配置好了OverCurrentContextClasss,这里就可注释

    [self.navigationController presentViewController:tmp animated:YES completion:^{
        
        
    }];

    
    
    
    
}

全局配置app的modalPresentationStyle

采用hook实现,具体请看这篇文章:https://blog.csdn.net/z929118967/article/details/104477314

代码语言:javascript复制
// 1、配置app 模态的modalPresentationStyle
 

 - (NSMutableArray *)OverCurrentContextClasss{
     
     if(_OverCurrentContextClasss == nil){
         
         _OverCurrentContextClasss = [NSMutableArray array];
         
         
         
         //.. 发布商品- 选择商品类目
         
         [_OverCurrentContextClasss addObject:@"ERPSelect_commodity_categoryViewController"];

         
     }
     return _OverCurrentContextClasss;
     
 }

//2、判断
 
              [QCTSession.shareQCTSession.OverCurrentContextClasss containsObject:NSStringFromClass(viewControllerToPresent.class)])
            
     {

         return UIModalPresentationOverCurrentContext;
 }

II、自定义视图

2.1 自定义展示已经选择的类目信息

  • cell内容:右侧是实心和空心圆形icon 一季连接线,右侧是类目名称

在这里插入图片描述

2.1.1 空心圆和实心圆

  • 空心圆
代码语言:javascript复制

- (void)layoutSubviews{
    
    
    [super layoutSubviews];
    
    //Base style for 椭圆 1 拷贝
    UIView *style = self;
    
    
    style.layer.borderColor = [[UIColor colorWithRed:243.0f/255.0f green:39.0f/255.0f blue:52.0f/255.0f alpha:1.0f] CGColor];
    
    style.layer.borderWidth = 1;
    style.alpha = 1;
    
    [self layoutIfNeeded];
    
    self.layer.cornerRadius = self.width*0.5;
    
    
    
}


  • 实心圆
代码语言:javascript复制
- (void)layoutSubviews{
    
    
    [super layoutSubviews];
    
    //Base style for 椭圆 1 拷贝
    UIView *style = self;
    
    style.layer.backgroundColor = [[UIColor colorWithRed:243.0f/255.0f green:39.0f/255.0f blue:52.0f/255.0f alpha:1.0f] CGColor];
    style.alpha = 1;
        
    [self layoutIfNeeded];
    
    self.layer.cornerRadius = self.width*0.5;
    
    
    
}


2.1.2 展示已经选择的类目信息cell的核心代码ERPSelectCategoryInfoV

  • ERPSelectCategoryInfoV.h

0 人点赞