美文网首页
ios辅助UI

ios辅助UI

作者: 师傅我坚持不住了 | 来源:发表于2018-04-30 03:17 被阅读77次

    WKCBaseUI

    Some base on BaseUI

    • BaseUI内的文件均单独存在,需要哪个,引入相应的头文件即可.
    pod 'WKCBaseUI'
    

    TableView

    #import <WKCBaseUI/WKCBaseTableView.h>
    
    • 基本类背景色白色,没有多余的分割线,超出数据范围仍可滑动.
    • 可以设置分割线插入的距离.
    • 可以设置下拉刷新及上拉刷新(封装MJRefresh).
    • 可以设置row、header、footer自适应高度.
    • 修补背景色(或图).
    • 如要使用,使用的tableView继承自WKCBaseTableView即可.
    1. 自适应cell(row,其他同理)
      (1) 设置可以自适应.
    _tableView.isAutoRowHeight = YES;
    

    (2)在代理方法 tableView:willDisplayCell:forRowAtIndexPath: 和 tableView:estimatedHeightForRowAtIndexPath:中分别缓存和读取高度.

    - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [self.tableView readRowHeightAtIndexPath:indexPath];
    }
    
    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    [self.tableView saveRowHeightWithCell:cell atIndexPath:indexPath];
    }
    
    1. 设置分割线位置.在tableView代理tableView:willDisplayCell:forRowAtIndexPath:方法中均设置


      分割线.png
    2. 刷新(以下拉为例)
      (1)普通类型:有箭头、有时间、有下拉状态提示.
    __weak typeof(self)weakSelf = self;
    [_tableView setUpBaseHeaderRefresh:^{
    [weakSelf.tableView.mj_header endRefreshing];
    }];
    

    (2)只有菊花,可以设置菊花类型.(Gray,white以及largeWhite)

    __weak typeof(self)weakSelf = self;
    [_tableView setUpIndicatorHeaderRefreshWithIndicatorStyle:UIActivityIndicatorViewStyleGray completionHandle:^{
    [weakSelf.tableView.mj_header endRefreshing];
    }];
    

    (3)自定义图片的(可是动图)

    __weak typeof(self)weakSelf = self;
    [_tableView setUpImageHeaderRefreshWithImages:@[[UIImage imageNamed:@"rectangle15Copy5"]] completionHandle:^{
    [weakSelf.tableView.mj_header endRefreshing];
    }];
    
    1. 修补背景(可直接添加背景色或是图片)
    [self.tableView setUpScrollViewWithColor:[UIColor blueColor]];
    
    修补背景.gif

    CollectionView

    #import <WKCBaseUI/WKCBaseCollectionView.h>
    
    • 基本类背景色白色.
    • 可以设置下拉刷新及上拉刷新(封装MJRefresh).
    • 如要使用,使用的collectionView继承自WKCBaseCollectionView即可.
      方法同TableView.(下拉刷新及修补背景只在竖直方向滚动时有效).

    TarBarController(下方适用于纯代码)

    #import <WKCBaseUI/WKCBaseTabBarController.h>
    
    • 快速搭建整体结构.
    • 可在tabBar对象设置导航栏基本信息,包括背景色、返回按钮、标题属性等.
    • 提供了三种返回样式:白色、黑色、以及灰色.其他请自定义.
    • 控制器模型,整合单独控制器的所有信息.
    • 适用图片超出(凸图).
    1. 创建控制器模型.
    - (WKCBaseViewControllerModel *)main {
                if (!_main) {
                        WKCMainViewController *controller = [WKCMainViewController new];
                        NSString *title = @"主页";
                        UIImage *normalImage = [UIImage imageNamed:@"Tab_Mine_Normal"];
                        UIImage * selectedImage = [UIImage imageNamed:@"Tab_Main_Selected"];
                        NSDictionary *attributedNoramlTitle = @{NSForegroundColorAttributeName: [UIColor blackColor],NSFontAttributeName: [UIFont systemFontOfSize:15]};
    NSDictionary *attributedSelectedTitle = @{NSForegroundColorAttributeName: [UIColor blueColor],NSFontAttributeName: [UIFont boldSystemFontOfSize:17]};
                     _main = [[WKCBaseViewControllerModel alloc] initWithDictionary:@{@"controller":controller,@"title":title,@"normalImage":normalImage,@"selectedImage":selectedImage,@"attributedNoramlTitle":attributedNoramlTitle,@"attributedSelectedTitle":attributedSelectedTitle}];
    }
          return _main;
    }
    
    1. 快速加载
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor clearColor];
    WKCBaseTabBarController *tabBarController =  [WKCBaseTabBarController new];
    tabBarController.bgColor = [UIColor yellowColor];
    tabBarController.navigationBgColor = [UIColor redColor];
    tabBarController.navigationType = navigationbackTypeWhite;
    [tabBarController setUpChildsWithModel:self.main,self.classroom,self.community,self.shopping,self.mine, nil];
    self.window.rootViewController = tabBarController;
    [self.window makeKeyAndVisible];
    
    1. 这里设置的属性是针对所有控制器的.如需某个控制器特殊,在其内单独更改即可.
    2. 默认push时隐藏底部bar,如不想隐藏,相应控制器内调用系统方法hidesBottomBarWhenPushed即可.
    - (BOOL)hidesBottomBarWhenPushed {
               return NO;
    }
    
    1. 适用于凸图,不用额外添加任何操作.会自动根据添加图片的尺寸,自适应位置.


      凸图.png

    NavigationViewController

    #import <WKCBaseUI/WKCBaseNavigationViewController.h>
    
    • 可设置背景色.
    • 可设置标题属性.
    • 可设置返回按钮. 如单独使用navigationViewController.初始化仍是系统方法.
    @property (nonatomic, strong) UIColor * bgColor;
    @property (nonatomic, strong) NSDictionary <NSAttributedStringKey,id>* attributedDictionary;
    @property (nonatomic, strong) UIBarButtonItem * leftBarButtonItem;
    @property (nonatomic, assign) navigationbackType navigationType;
    

    ViewController

    #import <WKCBaseUI/WKCBaseViewController.h>
    
    • 可判断跳转方式,push还是present?
    • 是否隐藏导航栏? 若想隐藏导航栏,相应控制器内调用shouldNavigationBarHiddien方法即可.
    - (BOOL)shouldNavigationBarHiddien {
        return YES;
    }
    

    如果bug或是问题,请私信.github地址.

    相关文章

      网友评论

          本文标题:ios辅助UI

          本文链接:https://www.haomeiwen.com/subject/tixzlftx.html