Skip to content

Commit f6371b2

Browse files
author
wangyutao
committed
fix bug
1 parent d7db6e4 commit f6371b2

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

Classes/UITableView+FDTemplateLayoutCell.m

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)