2016-06-21 90 views
0

iOS 9中的所有内容都可以正常工作。
但是在iOS 8中,内容不显示,只显示imageview。iOS 8表格单元中的内容不显示

我所做的是我创建一个视图,并将标签和UIImage添加到该视图。然后,这一观点被添加到内容查看表格单元格

的CREATE VIEW

- (UIView *)getHeaderView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, HEADER_SECTION_HEIGHT)]; 
    [view setBackgroundColor:[[RNThemeManager sharedManager] colorWithHexString:[_themeComponent valueForKey:@"Layer1Color"]]]; 

    UILabel *taskName = [[UILabel alloc] initWithFrame:CGRectMake(5.0, SECTION_BREAK+3.0, view.frame.size.width-23.0, 20)]; 
    [taskName setFont:[UIFont boldSystemFontOfSize:[[_themeComponent valueForKey:@"RegularFontSize"] intValue]]]; 
    [taskName setText:combinedTask.taskDescription]; 
    [taskName setTextColor: [[RNThemeManager sharedManager] colorWithHexString:[_themeComponent valueForKey:@"textPrimary"]]]; 
    [view addSubview:taskName]; 

UIImageView *addressView = [[UIImageView alloc]initWithFrame:CGRectMake(5.0, SECTION_BREAK+28.0, 20, 20)]; 
    addressView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png", @"Attr_Pin"]]; 
    [view addSubview:addressView]; 

    UILabel *address = [[UILabel alloc] initWithFrame:CGRectMake(35.0, SECTION_BREAK+23.0, view.frame.size.width-35.0, 30)]; 
    [address setFont:[UIFont boldSystemFontOfSize:[[_themeComponent valueForKey:@"SmallFontSize"] intValue]]]; 
    address.lineBreakMode = NSLineBreakByWordWrapping; 
    address.numberOfLines = 0; 

    [address setText:[NSString stringWithFormat:@"%@", unit]]; 
    [address setTextColor: [[RNThemeManager sharedManager] colorWithHexString:[_themeComponent valueForKey:@"textPrimary"]]]; 
    [view addSubview:address]; 
    return view; 
} 

添加视图到表格单元格

UIView *header= [self getHeaderView:tableView viewForHeaderInSection:section]; 
cell.taskIdLabel.hidden = YES; 

[cell.contentView addSubview:header]; 

任何人有任何想法?非常感谢您的帮助。

回答

0

这是因为iOS 9 Apple处理比以前更好的自动布局。 让我们在返回单元格之前添加[cell layoutIfNeeded]。 更新 我以前有同样的问题。这是我用来解决我的问题的代码块。

- (void) sizeHeaderToFit { 

    //call in viewLayoutSubView 
    UIView *myHeaderView = self.tableView.tableHeaderView; 

    [myHeaderView setNeedsLayout]; 
    [myHeaderView layoutIfNeeded]; 
    CGFloat height = [myHeaderView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; 

    myHeaderView.frame = ({ 
     CGRect headerFrame = myHeaderView.frame; 
     headerFrame.size.height = height; 
     headerFrame; 
    }); 

    self.tableView.tableHeaderView = myHeaderView; 
} 

在viewDidLayoutSubView中调用它。希望它有助于bên:))

+0

我试过[cell.contentView setNeedsDisplay]; [cell.contentView layoutIfNeeded];还有[cell setNeedsDisplay]; [cell layoutIfNeeded];昨天,但没有运气。 – ndnguyen

+0

这里的奇怪的东西是uiimage显示,但其他人不是 – ndnguyen

相关问题