UITableview Cell异常 - '必须将自动调整掩码转换为约束才能使_setHostsLayoutEngine:YES

时间:2014-11-03 06:52:18

标签: ios objective-c uitableview ios7 ios8

我正在使用UITableView。

 CategoryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierLink];

这是我收到错误的行。它在IOS 7中工作。但是当我在IOS 8中运行应用程序时,我收到了错误

** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Must translate autoresizing mask into constraints to have _setHostsLayoutEngine:YES.

修改

完整代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifierImageLink = @"NewsImageAndLink";
    static NSString *CellIdentifierImage = @"NewsImage";
    static NSString *CellIdentifierLink = @"NewsLink";
    static NSString *CellIdentifier = @"NewsDescription";

    NSString *image=[[_news objectAtIndex:indexPath.row] valueForKey:@"imageURL"];
    NSString *link=[[_news objectAtIndex:indexPath.row] valueForKey:@"link"];
    NSString *description=[[_news objectAtIndex:indexPath.row] valueForKey:@"description"];
    NSString *date=[[_news objectAtIndex:indexPath.row] valueForKey:@"date"];
    NSString *title=[[_news objectAtIndex:indexPath.row] valueForKey:@"title"];

    NSMutableString *html = [NSMutableString stringWithString: @""];

    //continue building the string
    [html appendString:@"<html><body>"];
    [html appendString:description];
    [html appendString:@"</body></html>"];

     SDWebImageManager *manager = [SDWebImageManager sharedManager];

    if (image !=(NSString *)[NSNull null] && link !=(NSString *)[NSNull null]) {

        CategoryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierImageLink];
        cell.lblHeading.text=title;

        NSURL *url = [NSURL URLWithString:image];

        [manager downloadImageWithURL:url options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {

        } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {

            cell.newsImage.image = image;

        }];

        if (date !=(NSString *)[NSNull null] ) {
            cell.lblDate.text=date;
        }

        //pass the string to the webview
        [cell.webView loadHTMLString:[html description] baseURL:nil];

        cell.lblLink.text=link;


        return cell;
    }
    else if (image !=(NSString *)[NSNull null] && link==(NSString *)[NSNull null]) {

        CategoryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierImage];


        cell.lblHeading.text=title;

        NSURL *url = [NSURL URLWithString:image];

        [manager downloadImageWithURL:url options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {

        } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {

            cell.newsImage.image = image;

        }];


        if (date !=(NSString *)[NSNull null] ) {
            cell.lblDate.text=date;
        }

        [cell.webView loadHTMLString:[html description] baseURL:nil];

        return cell;

    }
    else if (image ==(NSString *)[NSNull null] && link!=(NSString *)[NSNull null]) {

        CategoryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierLink];

        cell.lblHeading.text=title;

        if (date !=(NSString *)[NSNull null] ) {
            cell.lblDate.text=date;
        }
        //cell.txtDescription.text=description;
        //pass the string to the webview
        [cell.webView loadHTMLString:[html description] baseURL:nil];
        cell.lblLink.text=link;
        return cell;

    }
    else if (image ==(NSString *)[NSNull null] && link==(NSString *)[NSNull null]) {
        CategoryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        cell.lblHeading.text=title;

        if (date !=(NSString *)[NSNull null] ) {
            cell.lblDate.text=date;
        }
        //cell.txtDescription.text=description;
        //pass the string to the webview
        [cell.webView loadHTMLString:[html description] baseURL:nil];

        return cell;

    }
    return nil;

}

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我已经看到这种情况发生了约束。尝试运行删除了约束的代码,然后逐个重新添加。