使用UIView创建表格单元格作为子视图在iOS7中不显示

时间:2014-03-20 06:14:19

标签: iphone objective-c uitableview ios7 uiview

我已经在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];

2 个答案:

答案 0 :(得分:0)

检查您的代码。为什么你写了以下一行:

     [footerView setHidden:YES];

我认为你是在隐藏单元格的视图。

答案 1 :(得分:0)

而不是

[cell addSubview: footerView];

使用

[cell.contentView addSubview: footerView];

同时删除

[footerView setHidden:YES];

对于loadmore,我总是在下面做。

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];