@@ -28,10 +28,15 @@ @implementation UITableView (FDTemplateLayoutCell)
2828- (CGFloat)fd_systemFittingHeightForConfiguratedCell : (UITableViewCell *)cell {
2929 CGFloat contentViewWidth = CGRectGetWidth (self.frame );
3030
31+ CGRect cellBounds = cell.bounds ;
32+ cellBounds.size .width = contentViewWidth;
33+ cell.bounds = cellBounds;
34+
35+ CGFloat accessroyWidth = 0 ;
3136 // If a cell has accessory view or system accessory type, its content view's width is smaller
3237 // than cell's by some fixed values.
3338 if (cell.accessoryView ) {
34- contentViewWidth - = 16 + CGRectGetWidth (cell.accessoryView .frame );
39+ accessroyWidth = 16 + CGRectGetWidth (cell.accessoryView .frame );
3540 } else {
3641 static const CGFloat systemAccessoryWidths[] = {
3742 [UITableViewCellAccessoryNone] = 0 ,
@@ -40,8 +45,10 @@ - (CGFloat)fd_systemFittingHeightForConfiguratedCell:(UITableViewCell *)cell {
4045 [UITableViewCellAccessoryCheckmark] = 40 ,
4146 [UITableViewCellAccessoryDetailButton] = 48
4247 };
43- contentViewWidth - = systemAccessoryWidths[cell.accessoryType];
48+ accessroyWidth = systemAccessoryWidths[cell.accessoryType];
4449 }
50+ contentViewWidth -= accessroyWidth;
51+
4552
4653 // If not using auto layout, you have to override "-sizeThatFits:" to provide a fitting size by yourself.
4754 // This is the same height calculation passes used in iOS8 self-sizing cell's implementation.
@@ -72,7 +79,7 @@ - (CGFloat)fd_systemFittingHeightForConfiguratedCell:(UITableViewCell *)cell {
7279
7380 // Build edge constraints
7481 NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem: cell.contentView attribute: NSLayoutAttributeLeft relatedBy: NSLayoutRelationEqual toItem: cell attribute: NSLayoutAttributeLeft multiplier: 1.0 constant: 0 ];
75- NSLayoutConstraint *rightConstraint = [NSLayoutConstraint constraintWithItem: cell.contentView attribute: NSLayoutAttributeRight relatedBy: NSLayoutRelationEqual toItem: cell attribute: NSLayoutAttributeRight multiplier: 1.0 constant: 0 ];
82+ NSLayoutConstraint *rightConstraint = [NSLayoutConstraint constraintWithItem: cell.contentView attribute: NSLayoutAttributeRight relatedBy: NSLayoutRelationEqual toItem: cell attribute: NSLayoutAttributeRight multiplier: 1.0 constant: accessroyWidth ];
7683 NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem: cell.contentView attribute: NSLayoutAttributeTop relatedBy: NSLayoutRelationEqual toItem: cell attribute: NSLayoutAttributeTop multiplier: 1.0 constant: 0 ];
7784 NSLayoutConstraint *bottomConstraint = [NSLayoutConstraint constraintWithItem: cell.contentView attribute: NSLayoutAttributeBottom relatedBy: NSLayoutRelationEqual toItem: cell attribute: NSLayoutAttributeBottom multiplier: 1.0 constant: 0 ];
7885 edgeConstraints = @[leftConstraint, rightConstraint, topConstraint, bottomConstraint];
0 commit comments