TableView 中cell间的分割线(及其他控件间(内)的分割线)设置

本文将介绍如何在iOS应用中自定义tableView Cell样式,包括添加选中状态的红色标记与底部的白色分割线。通过实现左侧的红色选中标记与底部分割线的方法,提升用户体验并实现个性化设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点:

1、在应用开发中,tableView中自带的分割线满足不了开发需求;

2、一些子空间中添加一些类似于分割线一样的东西等······

     补充知识点:导航条左侧或右侧的控件尽量靠近屏幕边缘设置

 

需求:

1、cell与cell之间需要一种白色的分割线;

2、cell的左侧能有视图标记此cell是被选中的,如下图所示:

 

 

实现方法:

1、左侧的红色选中标记:

     (1)左侧添加一个红色背景色的view,并设置其尺寸位置约束如下图:

 

(2)通过代码设置其显示或隐藏的状态:

1 // 红色标记属性
2 @property (weak, nonatomic) IBOutlet UIView *selectedIndicator;
3 
4 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
5     [super setSelected:selected animated:YES];
6     
7     // 设置其隐藏属性的值与选中状态相反
8     self.selectedIndicator.hidden = !selected;
9 }

 

 

2、底部的分割线:

方法1:在cell底部添加一个指定颜色(分割线的颜色)的view,如下图:

          尺寸及位置的约束见图;

          注意:此处标记红色,是为了方便大家能够看见;

 方法2:修改cell内contenView的尺寸,让其下部留出一条线的位置;

 方法3:重写cell的  "- (void)setFrame:(CGRect)frame"方法,让其cell的高度减1(具体见下面实例)。

 

重写cell的  "- (void)setFrame:(CGRect)frame"方法距离拓展:

需求:如下图

实现:

/**
 *  重写setframe方法,修改cell的尺寸和位置:分割线、距离左、右边一些距离
 */
- (void)setFrame:(CGRect)frame
{
    frame.origin.x = 5;      // 左右侧间距都为5
    frame.size.height -= 1;  // 高度减1
    frame.size.width -= 2*frame.origin.x; // 宽度减去两边的间距
    [super setFrame:frame];
}

 

补充知识点:导航条左侧或右侧的控件尽量靠近屏幕边缘设置

 1、自定义左右侧的子空间;

 2、设置子控件的内边距(contentEdgeInsets):如向左移动30

btn.contentEdgeInsets = UIEdgeInsetsMake(0, -30, 0, 0);

 

转载于:https://www.cnblogs.com/jfckliving/p/4676281.html

### 如何在 Element UI 表格组件中添加或自定义分割线样式 要在 Element UI 的表格组件中实现分割线效果,可以通过 CSS 自定义样式来调整表格单元格之的边框。以下是具体方法: #### 方法一:通过 `row-class-name` 或 `cell-style` 属性 Element UI 提供了灵活的 API 来控制每一行或每一个单元格的样式。可以利用这些属性来自定义分割线的颜色和粗细。 ```vue <template> <el-table :data="tableData" style="width: 100%" :cell-style="cellStyle"> <el-table-column prop="date" label="日期" width="180"></el-table-column> <el-table-column prop="name" label="姓名" width="180"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { date: "2016-05-02", name: "王小虎", address: "上海市普陀区金沙江路 1518 弄" }, { date: "2016-05-04", name: "王小虎", address: "上海市普陀区金沙江路 1517 弄" } ] }; }, methods: { cellStyle({ row, column, rowIndex, columnIndex }) { return { borderBottom: "1px solid #ccc" }; // 设置底部边界颜色和宽度 } } }; </script> ``` 上述代码展示了如何通过 `cell-style` 动态设置每个单元格的样式[^1]。 --- #### 方法二:全局覆盖默认样式 如果希望整个项目中的所有表格都具有相同的分割线效果,则可以直接修改全局样式文件(如 `style.css` 或 `index.scss`),并覆盖 Element UI 默认的表格样式。 ```css /* 修改表格单元格的下边框 */ .el-table td, .el-table th.is-leaf { border-bottom: 1px solid #ebeef5; /* 可以更改为你想要的颜色 */ } /* 如果需要更明显的分割线,增加高度或改变颜色 */ .el-table::before { height: 0 !important; } ``` 此方法适用于需要一致性的场景,无需逐个配置表格实例[^2]。 --- #### 方法三:结合条件渲染动态调整样式 当某些特定条件下才显示分割线时,可借助 Vue 的计算属性配合 `v-if` 实现动态判断逻辑。例如,在多级表头的情况下,仅对部分列应用特殊样式。 ```vue <template> <el-table :data="tableData" style="width: 100%"> <el-table-column v-for="(item, index) in columns" :key="index" :prop="item.prop" :label="item.label" :class-name="item.label === '扣分项' ? 'dashed-border' : ''"> </el-table-column> </el-table> </template> <style scoped> .dashed-border .cell { border-top: 1px dashed red; /* 添加虚线作为分割线 */ } </style> ``` 这里使用了类名绑定的方式,并针对符合条件的列单独设置了顶部虚线分割线[^3]。 --- #### 方法四:引入 Axure 元件库辅助设计 对于前端设计师来说,还可以参考已有的 Axure 元件库资源,提前规划好界面布局后再进行编码实现。这样能够减少重复劳动时,提高效率[^4]。 ```plaintext 推荐下载链接:https://github.com/Axure-Plugins/element-ui-materials ``` 以上四种方式均能有效解决 Element UI 中表格分割线样式的定制需求,开发者可以根据实际业务场景选择最合适的方案实施。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值