我是iOS开发的新手,我知道这个问题被多次询问,但我对此感到困惑。我想知道如何在部分UITableview单元格之间设置一个空格。在我的应用程序UITableview包含两个部分第一部分只包含一个数据值,所以没有任何问题。但是我的第二部分包含5到7个数据值但是它们之间没有空格如何在UITableview中的第二个单元格之间设置页脚空间。
答案 0 :(得分:2)
好的,所以你有两个方法
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
和
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
但两者都不是为了在单个部分中将单元格之间放置空间。
我的钱有两种选择......第一种也是最复杂的/ hacky
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
中您可以返回第二部分中的单元格计数,并在cellForRowAtIndexPath
if (section == 0)
中按常规方式输入数据... {{1}您可以使用else
代替数组或其他任何内容。
(更简单,更好的做法)..创建一个UITableViewCell子类并在[theArray objectAtIndex:indexPath.section]
中使用它,如此
cellForRowAtIndexPath
在自定义单元格.m中,您可以设置
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
static NSString *MyCellIdentifier = @"MyCustomCell";
switch (indexPath.section) {
case 0:
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
// setup your 1st section cells here
return cell;
}
default:
{
MYTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyCellIdentifier];
if (!cell)
cell = [[MYTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyCellIdentifier];
// all other layout code here if indexPath.row == 0 etc.
return cell;
}
}
然后最后使用
-(void)layoutSubviews
{
[super layoutSubviews];
self.imageView.frame = CGRectMake(0,0,0,0); // lay them out at the top / middle / wherever in your cell
self.textLabel.frame = CGRectMake(0,0,0,0); // which will allow for some space at the bottom / edges
}
通过这种方式,您可以在单元格中设置填充,这更加清晰且可重复使用。如果你想要不同的颜色来标记间距,你应该在自定义的UITableViewCell子类方法中创建UIViews
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.section == 0)
return THE_CELL_HEIGHT;
else
return THE_CELL_HEIGHT + PADDING;
}
并使用- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
添加它们如果您在tableView后面有图像/内容,则可以始终将单元格的[self.contentView addSubView:someView];
设置为backgroundColor