我有一个表视图,我正在动态重新加载它的内容,以便重新加载表格内容我使用以下代码:
[agendaTable reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
这很好用,但问题是我是按照以下方式设置表格单元格的alpha属性:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if([cell isKindOfClass:[AgendaItemBlank class]])
cell.backgroundColor = [UIColor clearColor];
else if([cell isKindOfClass:[AgendaItem class]])
{
cell.backgroundColor = [UIColor whiteColor];
[cell setAlpha:0.82];
//set the corner radius so that there is a rounded effect
[cell.layer setBorderWidth:0.5];
[cell.layer setCornerRadius:9.0];
[cell.layer setBorderColor:[UIColor redColor].CGColor];
[cell.layer setMasksToBounds:YES];
//set a different color for the selected background
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor redColor]];
[bgColorView.layer setCornerRadius:9.0];
[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];
}
}
这些的组合导致这样的事实:在重新加载之后,表格单元格最初变为不透明,所有属性都生效但不是alpha属性。
当单元格向上和向下滚动时(特别是在重绘时),单元格会恢复其alpha属性。
我也尝试在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
内设置alpha,但这没有任何效果。
答案 0 :(得分:0)
要设置单元格背景,请使用中间UIView
对象:
UIView* cellBackView = [[UIView alloc] initWithFrame:CGRectZero];
cellBackView.backgroundColor = [UIColor redColor];
cellBackView.alpha = 0.82;
cell.backgroundView = cellBackView;
答案 1 :(得分:0)
试
[cell setBackgroundColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:0.82]];
[cell.textLabel setBackgroundColor:[UIColor clearColor]];