This is the solution:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGSize constraintSize = CGSizeMake(286.0f, CGFLOAT_MAX);
    UIFont *theFont  = [UIFont systemFontOfSize:14.0f];
    CGSize theSize;
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
    {
        CGRect frame = [[self.mArray objectAtIndex:indexPath.row] boundingRectWithSize:constraintSize options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName:theFont} context:nil];
    theSize = frame.size;
    }
    else
    {
        theSize = [[self.mArray objectAtIndex:indexPath.row] sizeWithFont:theFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
    }
    return theSize.height;
    }
Also in - (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath I used cell.label.numberOfLines = 0
If you are using more than one Label in row - in CGSizeMake(286.0f, CGFLOAT_MAX) use lower value than 286.0f (for example 150.0f)