无论如何,我可以通过编程方式关闭UITableView
中某些单元格之间的界限吗?例如,如果我想关闭第一个和第二个UITableViewCell
之间的行,但是在第三个和第四个UITableViewcell
之间留下一行。
答案 0 :(得分:2)
不幸的是,没有办法做到这一点。但是,您可以自己添加一个分隔符作为子视图,并隐藏/删除您希望隐藏它们的单元格。
答案 1 :(得分:2)
你可以移动到目前为止它将被隐藏。
if (indexPath.row == 0)
{
cell.separatorInset = UIEdgeInsetsMake(0, 1000, 0, 0);
}
答案 2 :(得分:1)
使用默认分隔符无法实现此目的。您需要隐藏默认值,然后创建UIImageView
(您可以使用其他视图,如UIView
,UILabel
等)对象作为分隔符功能。
我曾使用UIImageView
作为分隔符,因为如果在不久的将来您需要将图片作为分隔符而不是简单。
示例代码:
@interface ViewController () <UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, weak) IBOutlet UITableView *tableView;
@end
@implementation ViewController
- (void) viewDidLoad {
[super viewDidLoad];
[self.tableView setDataSource:self];
[self.tableView setDelegate:self];
// Hide default seperator.
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
//---------------------------------------------------------------
#pragma mark
#pragma mark UITableView datasource methods
//---------------------------------------------------------------
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 15;
}
//---------------------------------------------------------------
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *cellIdentifier = [NSString stringWithFormat:@"CellIdentifier%d%d", indexPath.section, indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
[cell.textLabel setText:@"Hello"];
if (indexPath.row > 1) {
UIImageView *seperatorLine = [[UIImageView alloc] initWithFrame:CGRectMake(0, cell.frame.size.height - 1, cell.frame.size.width, 1)];
[seperatorLine setBackgroundColor:self.tableView.separatorColor];
[cell addSubview:seperatorLine];
}
return cell;
}
//---------------------------------------------------------------
@end
注意:观察对象cellIdentifier
。我创建了唯一的小区标识符,因为如果您在此处指定static
,它将对所有小区使用相同的标识符。在滚动表格视图后,您还将在第一个和第二个单元格上看到分隔符。