获取 json 数据后以编程方式设置 UITableViewCell 高度

Posted

技术标签:

【中文标题】获取 json 数据后以编程方式设置 UITableViewCell 高度【英文标题】:set UITableViewCell height programmatically after getting json data 【发布时间】:2016-04-25 10:29:22 【问题描述】:

我正在尝试在获取 JSON 数据后根据内容调整 UITableViewCell 的高度。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    return UITableViewAutomaticDimension;

我已经添加了这样的内容,但 UITableViewCell 的高度不能根据内容增加。请帮我解决一下。

- (void) getAllocatedJobs 
    _allTableData = [[NSMutableArray alloc]init];
    [SVProgressHUD show];
    dispatch_queue_t getInit = dispatch_queue_create("getinit",NULL);
    dispatch_async(getInit, ^
        NSDictionary *jsonResponse = [commClass getJobs:strDriverId paramJobType:@""];
        NSNumber *status = [jsonResponse valueForKey:@"Success"];
        NSString *message = [jsonResponse valueForKey:@"Message"];
        NSArray *dataArray = [jsonResponse valueForKey:@"lstJob"];
        dispatch_async(dispatch_get_main_queue(), ^
            if([status intValue] == 1) 
                for(int i=0; i<[dataArray count]; i++) 
                    NSDictionary *JobData = [dataArray objectAtIndex:i];
                [_allocatedTable reloadData];

             else 
                [commClass showAlert:APP_NAME alertMessage:message];
                [SVProgressHUD dismiss];
            
        );
    );

【问题讨论】:

【参考方案1】:

如果您想使用UITableViewAutomaticDimension,请不要在heightForRowAtIndexPath 中返回它。像在viewDidload 中一样,

tableView.estimatedRowHeight = 100.0
tableView.rowHeight = UITableViewAutomaticDimension

自动布局对于UITableViewAutomaticDimension 是强制性的,因此请确保您设置了适当的约束。如果需要,当您成功获取所有 json 数据时重新加载表数据。

希望这会有所帮助:)

【讨论】:

【参考方案2】:

尝试根据该方法中的内容计算高度:-

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

【讨论】:

以上是关于获取 json 数据后以编程方式设置 UITableViewCell 高度的主要内容,如果未能解决你的问题,请参考以下文章

iOS UITableView 在设置 TableHeaderView 后以编程方式覆盖自动布局约束

首次加载后以编程方式突出显示 tableview 中的第一行

在配置时间后以编程方式终止订阅中的 PubSubIO.readMessages?

病毒扫描后以编程方式移动文件

定义状态变量后以编程方式推送视图

UITableView 滚动后以编程方式创建的 UITableViewCell 未正确显示