title: auto height for uilabel( alignment exception ) in tablecell by NSMutableParagraphStyle
body: <p>crash after tableview reload</p>
  
  <p>this problem only happen on iOS6, iOS7 is fine.</p>
  
  <h2>exception description:</h2>
  
  <p>NSTextAlignmentJustified and NSTextAlignmentNatural are invalid alignment values when drawing an NSString
  (null)
  (
  <br/>0   CoreFoundation                      0x00aa702e <strong>exceptionPreprocess + 206
  <br/>   1   libobjc.A.dylib                     0x03152e7e objc_exception_throw + 44
  <br/>   2   CoreFoundation                      0x00aa6deb +[NSException raise:format:] + 139
  <br/>   3   UIKit                               0x022ea8ec -[NSString(UIStringDrawing) _drawInRect:withFont:lineBreakMode:alignment:lineSpacing:includeEmoji:truncationRect:] + 88
  <br/>   4   UIKit                               0x022ea88f -[NSString(UIStringDrawing) drawInRect:withFont:lineBreakMode:alignment:lineSpacing:includeEmoji:] + 99
  <br/>   5   UIKit                               0x022ea827 -[NSString(UIStringDrawing) drawInRect:withFont:lineBreakMode:alignment:lineSpacing:] + 91
  <br/>   6   UIKit                               0x0241ce73 -[UILabel _legacy_drawTextInRect:baselineCalculationOnly:] + 3433
  <br/>   7   UIKit                               0x0241cf76 -[UILabel _drawTextInRect:baselineCalculationOnly:] + 160
  <br/>   8   UIKit                               0x0241bcd9 -[UILabel drawTextInRect:] + 548
  <br/>   9   UIKit                               0x0241e098 -[UILabel drawRect:] + 98
  <br/>   10  UIKit                               0x0230fe6e -[UIView(CALayerDelegate) drawLayer:inContext:] + 504
  <br/>   11  QuartzCore                          0x0340ba3f -[CALayer drawInContext:] + 128
      <br/>12  QuartzCore                          0x0340b96b _ZL16backing_callbackP9CGContextPv + 96
  <br/>   13  QuartzCore                          0x0331d723 CABackingStoreUpdate_ + 2703
  <br/>   14  QuartzCore                          0x0340b83c _ZN2CA5Layer8display_Ev + 1406
  <br/>   15  QuartzCore                          0x0340b9ba -[CALayer _display] + 33
  <br/>   16  QuartzCore                          0x0340b2b6 _ZN2CA5Layer7displayEv + 152
  <br/>   17  QuartzCore                          0x0340b994 -[CALayer display] + 33
  <br/>   18  QuartzCore                          0x034000e2 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 328
      <br/>19  QuartzCore                          0x0340015c _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 38
      <br/>20  QuartzCore                          0x0337e0bc _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 324
      <br/>21  QuartzCore                          0x0337f227 _ZN2CA11Transaction6commitEv + 395
      <br/>22  QuartzCore                          0x0337f8e2 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 96
      <br/>23  CoreFoundation                      0x00a6fafe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION</strong> + 30
      <br/>24  CoreFoundation                      0x00a6fa3d __CFRunLoopDoObservers + 381
      <br/>25  CoreFoundation                      0x00a4d7c2 __CFRunLoopRun + 1106
      <br/>26  CoreFoundation                      0x00a4cf44 CFRunLoopRunSpecific + 276
      <br/>27  CoreFoundation                      0x00a4ce1b CFRunLoopRunInMode + 123
      <br/>28  GraphicsServices                    0x044bc7e3 GSEventRunModal + 88
      <br/>29  GraphicsServices                    0x044bc668 GSEventRun + 104
      <br/>30  UIKit                               0x022bfffc UIApplicationMain + 1211
      <br/>31  DirectSeller                        0x0000548d main + 141
      <br/>32  libdyld.dylib                       0x03a2470d start + 1
  )</p>
  
  <p>I never set alignment to "NSTextAlignmentJustified" or "NSTextAlignmentNatural".i can't understand.<br/></p>
  
  <p>auto height code:</p>
  
  <p>DSBasicInfoPrototypeCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BasicCell"];
          NSString *titleText = data[@"title"];</p>
  
  <pre><code>    NSMutableAttributedString *titleAttributedText = [[NSMutableAttributedString alloc] initWithString:titleText];
      NSMutableParagraphStyle *titleParagraphStyle = [[NSMutableParagraphStyle alloc] init];
      [titleParagraphStyle setLineSpacing:3.0f];
      titleParagraphStyle.alignment = NSTextAlignmentLeft;
      [titleAttributedText addAttribute:NSParagraphStyleAttributeName value:titleParagraphStyle range:NSMakeRange(0, titleText.length)];
      cell.titleLabel.attributedText = titleAttributedText;
  
      cell.titleLabel.preferredMaxLayoutWidth = 280;
      [cell.titleLabel setText:data[@"title"]];
      [cell.leftSubtitleLabel setText:data[@"source"]];
      [cell.rightSubtitleLabel setText:data[@"time"]];
  
      [cell setNeedsUpdateConstraints];
      [cell updateConstraintsIfNeeded];
      [cell.contentView setNeedsLayout];
      [cell.contentView layoutIfNeeded];
  
      return [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
  </code></pre>
  
  <p>finally，to apologize for my bad english.</p>