美文网首页
iOS bottomView SafeArea适配

iOS bottomView SafeArea适配

作者: RunningDu | 来源:发表于2021-01-01 16:27 被阅读0次

底部操作视图安全域适配

底部安全域适配,结合Masonry进行配置跟简单快捷

safeArea.gif

场景:

我们经常会遇到需要在某个页面底部配置操作按钮,比如底部需要添加一个view,view上包含两个按钮,一个点赞、一个分享、一个收藏。
此时我们有两种适配方式:

  • 全局宏定义,根据是否x系列手机,计算出底部安全域高度,然后通过frame方式设置底部视图高度(比较笨拙)
  • 使用Masonry则简单很多,可直接通过安全域设置即可

但也可能出现另一个问题,即:底部view不能通到屏幕最底部,导致页面不协调,当前demo就是解决此问题

解决方案

实现也很简单,举个🌰,页面A中上半部分为tableview,底部为bottomview(包含点赞、收藏),按照以下步骤设置即可:

  1. 建立基类,基类中包含一个contentView
  2. Masonry约束contentview,但不设置高度,仅约束上左右
  3. 将自定义的底部视图bottomview继承至基类,将点赞、收藏按钮添加至基类contentview中,并设置约束(基于contentview)
  4. 约束bottomview的左右下为当前view(不区分是否x系列屏幕),上为tableview底部
  5. 设置基类中contentview的高度即可

弹出视图应用

弹出日期选择器

NSArray *dataArray = @[@"幼儿园",@"小学",@"中学",@"高中",@"大学",@"社会",@"领导",@"老板",@"CEO"];
CSPickerViewController *popVC = [CSPickerViewController new];
popVC.selectDoneBlock = ^(NSInteger index) {
    NSString *stage = dataArray[index];
    NSLog(@"index--%ld----%@",index, stage);
    [sender setTitle:stage forState:UIControlStateNormal];
};
popVC.dataArray = dataArray;
//    [popVC show];//直接展示

//  配置toolbar文字
CSPopPickerSetting *setting = [CSPopPickerSetting new];
//    setting.pickerViewHeight = 300;
setting.selectRow = 3;
CSToolBarSetting *barSetting = [CSToolBarSetting new];
barSetting.leftTitle = @"cancel";
barSetting.leftColor = RandomColor;
barSetting.title = @"标题";
barSetting.titleColor = RandomColor;
barSetting.rightTitle = @"done";
barSetting.rightColor = RandomColor;
setting.barSetting = barSetting;
[popVC showWithSetting:setting];

弹出列表

NSArray *dataArray = @[@"幼儿园",@"小学",@"中学",@"高中",@"大学",@"社会",@"领导",@"老板",@"CEO",
                       @"幼儿园",@"小学",@"中学",@"高中",@"大学",@"社会",@"领导",@"老板",@"CEO"];
CSPopTableViewController *popVC = [CSPopTableViewController new];
popVC.dataArray = dataArray;
popVC.selectIndexBlock = ^(NSIndexPath * indexPath) {
    NSString *stage = dataArray[indexPath.row];
    NSLog(@"index--%@----%@",indexPath, stage);
    [sender setTitle:stage forState:UIControlStateNormal];
};
//    [popVC show]; //  直接展示
    
//  配置展示
CSPopTableSetting *setting = [CSPopTableSetting new];
//    setting.toolBarStyle = CSToolBarHeaderView;
//    setting.headerTitle = @"请选择";
    
//  固定比例
//    setting.heightStyle = CSTableFixedRatio;
//    setting.fixRatio = 0.8;
    
//  动态比例
setting.heightStyle = CSTableDynamicRatio;
setting.fixRatio = 0.6;
    
// 配置toolbar
setting.toolBarStyle = CSToolBarCustomerView;
CSToolBarSetting *barSetting = [CSToolBarSetting new];
barSetting.leftTitle = @"cancel";
barSetting.leftColor = RandomColor;
barSetting.title = @"标题";
barSetting.titleColor = RandomColor;
barSetting.rightTitle = @"done";
barSetting.rightColor = RandomColor;
setting.barSetting = barSetting;
    
[popVC showWithSetting:setting];

相关文章

  • iOS bottomView SafeArea适配

    底部安全域适配,结合Masonry进行配置跟简单快捷 github链接:DSSafeAreaDemo[https:...

  • iOS 11 safeArea详解 & iphoneX

    iOS 11 safeArea详解 & iphoneX 适配 iOS 11 safeArea详解 & iphone...

  • iPhoneX SafeArea - 安全区域

    iPhoneX SafeArea - 安全区域 一. 前言 本文的出发点是对iOS设备的适配,...

  • iOS11界面适配-XIB

    最近在适配过程中发现通过XIB对UI进行约束时,safeArea(是在iOS11适配中十分重要的, 可以通过iOS...

  • iOS 9/10 safeArea 适配

    iOS11出来已经近一年了,适配也基本上搞的差不多了,我们都知道iOS11后才有的安全区概念,但是在iOS10及以...

  • SafeArea widget

    SafeArea widget是适配手机屏幕---刘海屏,底部虚拟按钮等.

  • iOS 11.0 iPhone X safeArea适配

    使用安全区域的情况当视图部分处于非安全区域内时,SafeAreaInsets会返回非0的数值,若整个视图已经处在安...

  • iOS 11.0 iPhone X safeArea适配

    http://www.cocoachina.com/ios/20171107/21071.html http://...

  • Masonry适配safeArea

    我这里讲解使用的是Masonry,我假设你对约束有一定的了解。 随着iPhone X的出现,iOS页面的适配似乎也...

  • 适配 iOS11

    适配 iPhone X 的相关内容详见我的另一篇文章关于 SafeArea 和 适配 iPhoneX 前言 又是一...

网友评论

      本文标题:iOS bottomView SafeArea适配

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