gpt4 book ai didi

ios - 如何在 iOS 中设置 Tableview Cell 之间的空间?

转载 作者:行者123 更新时间:2023-11-29 10:36:27 25 4
gpt4 key购买 nike

我是 iOS 开发的新手,我知道这个问题被问过很多次,但我对此感到困惑。我想知道如何在部分中的 UITableview 单元格之间设置一个空格。在我的应用程序 UITableview 中包含两个部分,第一部分仅包含一个数据值,所以没有任何问题。但是我的第二部分包含 5 到 7 个数据值但它们之间没有空格如何在 UITableview 的第二部分单元格之间的页脚中设置空格。

最佳答案

好的,所以你有两种方法用于部分

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

但两者都没有达到在单个部分中的单元格之间放置空间的目的。

为了我的钱,有两种选择......第一种也是最复杂的/hacky

  1. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 中,您可以返回第二部分和 cellForRowAtIndexPath 中的单元格计数 if (section == 0) 以通常的方式放置数据... else 您可以使用 [theArray objectAtIndex:indexPath. section] 代替。

  2. (更简单,更好的做法).. 创建一个 UITableViewCell 子类并在您的 cellForRowAtIndexPath 中使用它

    (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;
    }
    }

在你的自定义单元格.m中你可以设置

-(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
}

然后最后使用

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

if(indexPath.section == 0)
return THE_CELL_HEIGHT;
else
return THE_CELL_HEIGHT + PADDING;
}

通过这种方式,您可以在单元格本身中设置填充,这样更干净且可重复使用。如果你想要不同的颜色来标记间距,你应该在自定义的 UITableViewCell 子类方法中创建 UIViews

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

并使用 [self.contentView addSubView:someView]; 添加它们,您始终可以将单元格的 backgroundColor 设置为 [UIColor clearColor]; 如果在 tableView 后面有图像/内容

关于ios - 如何在 iOS 中设置 Tableview Cell 之间的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com