iOS - TableViewCell分割线 --By吴帮雷

千万别小看UI中得线,否则你的设计师和测试组会无休止地来找你的!!(如果是美女还好,如果是恐龙。。。。)

在开发中运用最多的是什么,对,表格--TableView,之所以称作表格,是因为他天生带有分割线。

首先系统带的有如下类型:

typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) {
    UITableViewCellSeparatorStyleNone,
    UITableViewCellSeparatorStyleSingleLine,
    UITableViewCellSeparatorStyleSingleLineEtched   // This separator style is only supported for grouped style table views currently
};

有时你要短点的,如同这样:

那你可以这样:

 if ([_pinglunTableView respondsToSelector:@selector(setSeparatorInset:)]) {
            UIEdgeInsets insets=UIEdgeInsetsMake(0, 53, 0, 0);
            [_pinglunTableView setSeparatorInset:insets];
        }

也可以完全自己定义自己想要的分割线,但意味着你要自定义 TableViewCell,然后在自定义UITableViewCell中复写- (void)drawRect:(CGRect)rect方法 如:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); CGContextFillRect(context, rect);//上分割线
     CGContextSetStrokeColorWithColor(context, [UIColor colorWithHexString:@"ffffff"].CGColor);
    CGContextSetStrokeColorWithColor(context, [UIColor colorWithHexString:@"ffffff"].CGColor);
     CGContextSetStrokeColorWithColor(context, [UIColor colorWithHexString:@"e2e2e2"].CGColor);
    CGContextStrokeRect(context, CGRectMake(5, rect.size.height, rect.size.width - 10, 1));//下分割线
    CGContextSetStrokeColorWithColor(context, [UIColor colorWithHexString:@"e2e2e2"].CGColor);
    CGContextStrokeRect(context, CGRectMake(5, rect.size.height, rect.size.width - 10, 1));
}

如果要改变颜色,则利用类似[tableView setSeparatorColor:[UIColor redColor]];语句即可修改cell中间分割线的颜色。

如果UI给你一张图片,那么就可以这样:

方法一:
先设置cell separatorColor为clear,然后把图片做的分割线添加到自定义的custom cell上。

方法二:
在cell里添加一个像素的imageView后将图片载入进,之后设置tableView.separatorStyle = UITableViewCellSeparatorStyleNone

时间: 2024-11-05 20:26:49

iOS - TableViewCell分割线 --By吴帮雷的相关文章

iOS多线程总览 --By 吴帮雷

在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于在iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面(新版iOS中,使用其他线程更新UI可能也能成功,但是不推荐).iOS中多线程使用并不复杂,关键是如何控制好各个线程的执行顺序.处理好资源竞争问题.常用的多线程开发有三种方式: 1.NSThread 2.NSOperation 3.GCD 三种方式是随着iOS的发展逐渐引入的,所以相比而言后者比前者更加简单易用,并

iOS,开发准备之申请证书 ---by吴帮雷

一.申请真机调试证书 打开iOS Dev Center,选择Sign in,登陆(至少99美元账号),登陆选择Certificates,Identifiers & Profiles --> Identifiers 选择Identifiers->App IDs,开始添加 App ID由用 . 符号分开的两部分组成,在默认情况下,App ID的前缀为你的团队ID,后缀被定义为一个bundle ID的搜索字符串,AppID的每一个部分对你的应用程序都有不同而且很重要的用途 App ID De

NSSet和NSMutableSet - By吴帮雷

1.NSSet的使用 [NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造 [NSSet setWithArray:(NSArray *)array];用数组构造 [NSSet setWithObjects:...]:创建集合对象,并且初始化集合中的数值,结尾必需使用nil标志. [set count] ; 得到这个结合对象的长度. [set containsObject:...]: 判断这个集合中是否存在传入的对象,返回Bool值. [set object

iOS,蓝牙开发!!--By帮雷

iOS的蓝牙开发大致有以下几种方式. 1 GameKit.framework [只能存在于iOS设备之间,多用于游戏 能搜索到的demo比较多,不确切说名字了,code4app里面就有] 2 CoreBlueTooth.framework [必须要支持蓝牙4.0,且iPhone4以上,即至少4s手机.可与第三方设备交互数据, 官方demo是Temperature Sensor ] 3 ExternalAccessory.framework [可于第三方蓝牙设备交互,但是蓝牙设备必须经过MFI认证

iOS开发之----去除tableViewCell分割线的左边间隙,将分割线填满

ps:此方法只对ios8有效 1.在- (void)viewDidLoad方法中调用 [self setUpCellSeparatorInset]; 2.在当前控制器中,实现以下两个方法: // 设置cell的分割线左边间距为0 - (void)setUpCellSeparatorInset { if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) { [self.tableView setSeparator

iOS tableViewCell plane格式下,接近section边缘不显示分割线却被复用解决办法

今天做公司产品的时候遇到了如题问题,困扰我很长时间,用尽各种办法不能解决,究其原因不知为何,自定义cell低端有view划线的时候,划线一般的显示1像素,而贴着section的显示很少 顶多0.3像素,这个问题很头疼,后来 想到了一个非常好的办法解决: UIImageView *separatorLine = [[UIImageView alloc] initWithFrame:CGRectMake(20.0f*SizeScaleX, 30*SizeScaleY - 1.0f, cell.fra

iOS:使用MVC模式帮ViewController瘦身

如何给UIViewController瘦身 随着程序逻辑复杂度的提高,你是否也发现了App中一些ViewController的代码行数急剧增多,达到了2,3千行,甚至更多.这时如果想再添加一点功能或者修改现有逻辑变得让人无比头疼.如果你遇到了这类问题,那是时候停下来了,思考一下如何更好地组织代码,给VC瘦身.本文将会阐述如何结合MVC的思想帮你的VC瘦身同时提高复用和可扩展性. 一.开发中常见的现象和缺点 iOS中最常见的一种设计模式就是MVC,但在实际开发过程中,我们因为这样.那样的原因让单纯

解决tableViewCell分割线不到左边界的问题

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 在tableView控制器的.m文件中任何位置加入以下两个方法即可解决 /**  *  下面两个方法解决cell分割线不到左边界的问题  */ -(void)viewDidLayoutSubviews {          if ([self.tableView respondsToSelector:@selector(setSeparatorIn

设置TableViewCell分割线

设置完之后,发现分割线距离左边并不是为0.只需要再设置layoutMargins属性即可,两者缺一不可. cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0) cell.layoutMargins = UIEdgeInsetsMake(0, 0, 0, 0)