iOS中tableView cell分割線的一些設(shè)置技巧
前言
對于iOS的tableView的cell的分割線,一般我們很少使用不是系統(tǒng)默認的,但是有些項目要求還是要求我們?nèi)ジ淖兎指罹€的顏色或者外形以配合整個項目的色調(diào)。這個蘋果公司早都為我們想到了。
一、關(guān)于分割線的位置。
分割線的位置就是指分割線相對于tableViewCell.如果我們要根據(jù)要求調(diào)節(jié)其位置,那么在iOS7.0版本以后,提供了一個方法如下:
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 45, 0, 0)];
}
UIEdgeInsets 的四個參數(shù)分別是相對于cell的上、左、下、右的距離,都是CGFloat型。
二、分割線的顏色及風(fēng)格:
a、cell的分割線的顏色不是cell的屬性,它屬于tableView的separatorColor屬性。這樣我們只需要設(shè)置屬性值就可以得到所有我們想要的顏色的分割線、
[self.tableView setSeparatorColor:[UIColor clearColor]];
b、cell的風(fēng)格:它是tableView 的separatorStyle屬性,系統(tǒng)給我們提供了三種風(fēng)格在枚舉UITableViewCellSeparatorStyle中定義,分別是
typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) {
UITableViewCellSeparatorStyleNone,
UITableViewCellSeparatorStyleSingleLine,
UITableViewCellSeparatorStyleSingleLineEtched // This separator style is only supported for grouped style table views currently
};
默認的是UITableViewCellSeparatorStyleSingleLine.
三、tableViewCell 分割線自定義
首先要把cell自帶的分割線給去掉,使用如下兩種都行,一是把顏色設(shè)置為clearColor,二是風(fēng)格設(shè)置為UITableViewCellSeparatorStyleNone。
自定義cell分割線大致用到的兩種方法
a、把自定義的分割線當(dāng)成一個View放到cell的contentView上,一定要注意重用問題,所以這個view 要在cell初始化的時候添加上。示例代碼如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
cell.accessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"huicellacce"]];
cell.backgroundColor = [UIColor clearColor];
// cell.selected = YES;
UIImageView *imageViewSepE = [[UIImageView alloc]initWithFrame:CGRectMake(47, 49, 200, 1)];
imageViewSepE.image = [UIImage imageNamed:@"godline"];
[cell.contentView addSubview:imageViewSepE];
}
}
b、比較復(fù)雜,用到了底層的框架,
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); CGContextFillRect(context, rect);
CGContextSetStrokeColorWithColor(context, [UIColorcolorWithHexString:@"ffffff"].CGColor);
CGContextStrokeRect(context, CGRectMake(5, -1, rect.size.width - 10, 1)); //下分割線
CGContextSetStrokeColorWithColor(context, [UIColor colorWithHexString:@"e2e2e2"].CGColor);
CGContextStrokeRect(context, CGRectMake(5, rect.size.height, rect.size.width - 10, 1));
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
iOS App項目中引入SQLite數(shù)據(jù)庫的教程
SQLite是一個極輕的嵌入式數(shù)據(jù)庫,在應(yīng)用程序中捆綁使用可以更方便地幫助操控關(guān)系型數(shù)據(jù),這里我們就來看一下iOS App項目中引入SQLite數(shù)據(jù)庫的教程2016-06-06
iOS 生成plist文件,在項目中代碼創(chuàng)建plist的實例
下面小編就為大家分享一篇iOS 生成plist文件,在項目中代碼創(chuàng)建plist的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
iOS實現(xiàn)列表與網(wǎng)格兩種視圖的相互切換
相信大家應(yīng)該也都發(fā)現(xiàn)了,在現(xiàn)在很多的電商app中,都會有列表視圖和網(wǎng)格兩種視圖的相互切換。例如京東和淘寶。這樣更利于提高用戶的體驗度,所以這篇文章小編就是大家分享下利用iOS實現(xiàn)列表與網(wǎng)格兩種視圖相互切換的方法,文中介紹的很詳細,感興趣的下面來一起看看吧。2016-10-10
IOS Swift 開發(fā)QRCore(二維碼)實例詳解
這篇文章主要介紹了IOS Swift 開發(fā)QRCore(二維碼)實例詳解的相關(guān)資料,這里對開發(fā)二維碼進行了詳細介紹,需要的朋友可以參考下2016-12-12

