如何更改出现在UITableView中每个单元格末尾的分隔线?我想要的图像是细分隔符类型的线条图像。
如何更改出现在UITableView中每个单元格末尾的分隔线?我想要的图像是细分隔符类型的线条图像。
Answers:
将separatorStyle
tableview的设置为UITableViewCellSeparatorStyleNone
。将分隔符图像作为子视图添加到每个单元格,并正确设置框架。
试试这个
目标C
[TableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
[TableView setSeparatorColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"Divider_line@2x.png"]]];
迅速
tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
tableView.separatorColor = UIColor(patternImage: UIImage(named: "YOUR_IMAGE_NAME")!)
table.separatorStyle = UITableViewCellSeparatorStyle.SingleLine table.separatorColor = UIColor(red: 245/255, green: 245/255, blue: 245/255, alpha: 1.0)
首先,您可以编写代码:
{ [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];}
之后
{ #define cellHeight 80 // You can change according to your req.<br>
#define cellWidth 320 // You can change according to your req.<br>
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"seprater_line.png"]];
imgView.frame = CGRectMake(0, cellHeight, cellWidth, 1);
[customCell.contentView addSubview:imgView];
return customCell;
}
}
tableView:cellForRowAtIndexPath:
因为它们每次重用该单元格都会添加一个新的视图,而永远不会删除旧的视图。它只能添加一次,因此您可以在UITableViewCell
子类中进行添加。
设置要与图像一起图案化的分隔符的颜色。
在viewDidLoad
:
self.tableView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mySeparatorImage"]];
我的项目基于iOS 7,这对我有帮助
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
然后将子视图放入单元格中作为分隔符!
您可以添加一个UIImageView,例如,其高度为1点并且与单元格的框架一样宽,然后将其原点设置为该单元格的左下角。
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
这绝对是有帮助的。加工。但是将属性检查器的分隔符设置为“ none”。在cellForRowAtIndexPath 方法中编写以下代码
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0,
cell.contentView.frame.size.height - 1.0,
cell.contentView.frame.size.width, 1)];
lineView.backgroundColor = [UIColor blackColor];
[cell.contentView addSubview:lineView];
[cell.contentView bringSubviewToFront:lineView];
至尝试了这一点,但除了最右边和最左边外,大部分都没有显示。
迅捷3/4
自定义分隔线,请将以下代码放在UITableViewCell的子类的自定义单元中(或在非自定义单元的CellForRow或WillDisplay TableViewDelegates中):
let separatorLine = UIView.init(frame: CGRect(x: 8, y: 64, width: cell.frame.width - 16, height: 2))
separatorLine.backgroundColor = .blue
addSubview(separatorLine)
在viewDidLoad方法中:
tableView.separatorStyle = .none
如果要更改默认选项(无分隔符,实线或蚀刻线),则有2个选项可以更改uitableview的分隔符样式。
最简单的方法是在每个单元格视图中包含分隔线背景图像。您可以检查表格视图中单元格的位置,然后应用正确的背景图像,该背景图像将在单元格顶部或底部提供分隔线。
在tableview的viewDidLoad中将分隔符样式设置为none:
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
在(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath函数中设置背景图像
UIImage* yourBgImg = [[UIImage imageNamed:@"bgImage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)];
cell.backgroundView = [[UIImageView alloc] initWithImage:yourBgImg];
使用以下命令检查单元格在该部分中的位置:
NSInteger sectionRows = [tableView numberOfRowsInSection:[indexPathsection]]; NSInteger行= [indexPath行];
您可以尝试以下操作:
UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)];
separator.backgroundColor = myColor;
[cell.contentView addSubview:separator];
要么
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]];
imageView.frame = CGRectMake(0, 100, 320, 1);
[customCell.contentView addSubview:imageView];
return customCell;
}
这是一种替代方法,可以UITableView
通过CALayer
为图像添加a并将其用作分隔线来向其中添加自定义分隔线。
//为分隔线的图像制作一个CALayer
CALayer *separator = [CALayer layer];
separator.contents = (id)[UIImage imageNamed:@"myImage.png"].CGImage;
separator.frame = CGRectMake(0, 54, self.view.frame.size.width, 2);
[cell.layer addSublayer:separator];