以 UIView 作为子视图创建的表格单元格在 iOS7 中不显示
Posted
技术标签:
【中文标题】以 UIView 作为子视图创建的表格单元格在 iOS7 中不显示【英文标题】:Created Table Cell With UIView as subview Not Displaying in iOS7 【发布时间】:2014-03-20 06:14:18 【问题描述】:我在 UITable Cell 上创建了 UIView,但它没有在 ios7 中显示,这在 iOS6 中运行良好。请给我解决方案。
我们将在表格末尾添加更多按钮。
添加相同的代码:
UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 768, 40)];
footerView.backgroundColor = [UIColor grayColor];
UIButton *btnLoadMore = [UIButton buttonWithType:UIButtonTypeCustom];
btnLoadMore.frame = CGRectMake(-10, 0, 768, 30);
btnLoadMore.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth;
[btnLoadMore setTitle:@"Sample" forState:UIControlStateNormal];
[btnLoadMore setBackgroundColor:[UIColor redColor]];
[btnLoadMore setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[btnLoadMore addTarget:self action:@selector(loadMore) forControlEvents:UIControlEventTouchUpInside];
btnLoadMore.userInteractionEnabled=YES;
[btnLoadMore.titleLabel setFont:[UIFont fontWithName:@"Helvetica" size:17.0]];
[footerView addSubview:btnLoadMore];
[footerView setHidden:YES];
[footerView setTag:999];
[cell addSubview: footerView];
for (id subView in [cell subviews])
[subView setHidden:NO];
UIView *lastRow = [cell viewWithTag:999];
[lastRow setHidden:YES];
if(indexPath.section == [arSearch count] && isLoadMore)
for (id subView in [cell subviews])
[subView setHidden:YES];
cell.backgroundView = nil;
[lastRow setHidden:NO];
【问题讨论】:
【参考方案1】:检查您的代码。为什么你写下一行:
[footerView setHidden:YES];
我认为您正在从单元格中隐藏视图。
【讨论】:
但我已经按照逻辑为页脚视图隐藏了 no 并且它在 iOS6 中工作 @Warrior 检查您显示的代码并从中删除此行:[footerView setHidden:YES]; @Warrior 我检查了你的代码。我不明白你为什么隐藏视图而不是通过条件显示它。但至少尝试一次,删除该行。【参考方案2】:代替
[cell addSubview: footerView];
使用
[cell.contentView addSubview: footerView];
同时删除
[footerView setHidden:YES];
为了加载更多,我总是在下面做。
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 65)];
v.backgroundColor = [UIColor clearColor];
int mySiz = 0;
// keep counter how many times load more is pressed.. initial is 0 (this is like index)
mySiz = [startNumberLabel.text intValue]+1;
// i have 15 bcz my index size is 15.
if ([feeds count]>=(15*mySiz))
NSLog(@"showing button...");
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:CGRectMake(10, 10, 296, 45)];
[button setBackgroundImage:[UIImage imageNamed:localize(@"loadmore")] forState:UIControlStateNormal];
[button addTarget:self action:@selector(loadMoreData:) forControlEvents:UIControlEventTouchUpInside];
[v addSubview:button];
mainTableView.tableFooterView = v;
else
mainTableView.tableFooterView = nil;
[mainTableView reloadData];
【讨论】:
以上是关于以 UIView 作为子视图创建的表格单元格在 iOS7 中不显示的主要内容,如果未能解决你的问题,请参考以下文章