Table的分割线偏移量设置 及其 UIEdgeInset详解

复制代码
 1 -(void)viewDidLayoutSubviews {
 2     
 3     if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
 4         [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 85, 0, 0)];
 5         // 设置分割线的 偏移量  分割线向右移动85   要是向左改成UIEdgeInsetsMake(0, 0, 0, 85)
 6     }
 7     if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)])  {
 8 //这个是整个table的margin
 9         //[self.tableView setLayoutMargins:UIEdgeInsetsMake(0, 85, 0, 0)];
10     }
11 }
复制代码
UIEdgeInsetsMake(0, 85, 0, 0)
UIEdgeInsetsMake(top, left,bottom, right )
这里的4个参数 其实就是 距离上边距离为top ,距离左边left,距离底部bottom,距离右边right。

每一个view 都是一个容器,这些距离都是距离容器的边框的距离。


但是分割线和右边的灰色的箭头 都会偏移,用的时候注意了



所以我又想到其他的想法,就是把系统的line 隐藏,自己重写cell中的
复制代码
- (void)drawRect:(CGRect)rect

{

    UIColor * color =[UIColor lightGrayColor];

    [color set]; //设置颜色

    UIBezierPath * bezier=[[UIBezierPath alloc]init];

    bezier.lineWidth = 0.3 ; //设置线宽度

    CGFloat y = CGRectGetHeight(self.contentView.frame)-1;

    [bezier moveToPoint:CGPointMake(85, y)];//线的起点

    [bezier addLineToPoint:CGPointMake(kScreenWidth, y)]; //连两点之间的线

    [bezier closePath];

    [bezier stroke]; //画线

}
复制代码

 



posted @   ifgyong  阅读(757)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示