将带有动态 tex 的 UIButton 放在 UITableViewCell 的中心

Place UIButton with dynamic tex at the center of UITableViewCell

我在 table 单元格中有一个 UIButton。我想将按钮放在单元格的中心。按钮的文本是动态的。这是我尝试过的,但它并没有出现在中心。它正在向中心的右侧移动。

UIButton *btnName = [UIButton buttonWithType:UIButtonTypeRoundedRect];

CGSize maximumLabelSize = CGSizeMake(self.frame.size.width, MAXFLOAT);
NSStringDrawingOptions options = NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesLineFragmentOrigin;

NSDictionary *attr = @{NSFontAttributeName: [UIFont systemFontOfSize:15]};
CGRect labelBounds = [titleText boundingRectWithSize:maximumLabelSize
                                             options:options
                                          attributes:attr
                                             context:nil];
CGFloat width = ceilf(labelBounds.size.width);

btnName.frame = CGRectMake(0.0, imgPic.frame.origin.y+imgPic.frame.size.height+20.0, width, 20.0);
btnName.center = CGPointMake(cell.contentView.center.x, imgPic.frame.origin.y+imgPic.frame.size.height+10.0);

[btnName setTitle:titleText forState:UIControlStateNormal];
[btnName setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
[cell.contentView addSubview:btnName];

您的代码看起来不错,只是您需要进行这些更改,

  1. 添加单元格后应使按钮居中,并且

  2. 修正中心点


[cell.contentView addSubview:btnName];

btnName.center = CGPointMake(cell.frame.size.width/2.f, btnName.center.y);

只需在您的代码中添加以下行。

btnName.center = cell.center;

Vladimir's 回答拯救了我。我使用了 set AutoresizingMask,现在一切正常。