gpt4 book ai didi

iphone - 当部分为空时 UITableView 背景颜色变为白色

转载 作者:行者123 更新时间:2023-12-03 21:12:54 25 4
gpt4 key购买 nike

事情是这样的:我有一个包含 2 个部分的 UITableView,我想在第一个部分为空时显示一个“无数据”单元格,这样 2 个部分标题就不会粘在一起(因为看起来很奇怪) .

它工作得很好(尽管我一开始很难让它工作, see this thread )。我正在使用 viewForFooterInSection :

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {

if(section == 0)
{
if([firstSectionArray count] == 0)
return 40;
else
return 0;
}

return 0;

}

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

if(section == 0)
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(200, 10, 50, 44)];
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor colorWithWhite:0.6 alpha:1.0];
label.textAlignment = UITextAlignmentCenter;
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
label.text = @"No row";
return [label autorelease];
}

return nil;
}

但是当我显示节页脚 View 时,背景颜色变成纯白色。看图片:

alt text http://img683.yfrog.com/img683/9480/uitableviewproblem.png

我更喜欢背景充满空单元格。有谁知道如何做到这一点?谢谢

最佳答案

当您没有页脚时,背景将填充空单元格。因此,不要实现 viewForFooterInSection (或 titleForFooterInSection)方法,您将获得“空单元格”效果。

我建议您返回一个单元格,表明没有可显示的条目,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (matches.count>0) {
// Do your usual thing here
} else {
static NSString *cellId = @"noDataCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId] autorelease];
cell.textLabel.textAlignment = UITextAlignmentCenter;
cell.textLabel.textColor = [UIColor grayColor];
}
cell.textLabel.text = @"Aucun match";
return cell;
}
}

当然,您必须告诉 UIKit 您的部分中始终至少有一个单元格...我添加了似乎困扰您的 isDeletingRow 案例(在评论中) .

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section==0) return matches.count>0 ? matches.count : (isDeletingRow ? 0 : 1);
// Set 'isDeletingRow' to YES when a delete is being committed to the table, in that case we let UIKit know that we indeed took care of the delete...
// And cover the other sections too...
}

当您提交编辑时,您需要为 numberOfRowsInSection 设置 isDeletingRow 以返回满意的值...

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
isDeletingRow = YES;
// Your current code when a row is deleted here...
isDeletingRow = NO;
if (matches.count==0) [self.tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.5];
}
}

关于iphone - 当部分为空时 UITableView 背景颜色变为白色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1894277/

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