手动居中时,UIButton 不会在 UITableViewCell 中居中

UIButton will not center in UITableViewCell when manually centered

我正在为自己做一个小练习,我正在 运行 解决一个小问题,也许有人可以提供一些帮助。我有 TableViewCell 设置在点击单元格时展开。这很好用。我的问题是 TableViewCell 中的 UIButton 不会居中。

注意:我没有在此应用程序中使用 Auto Layout

我有一个 ViewController 当前处理我的主视图。我有一个我创建的 XIB,我已经为这个练习设计了我的 TableViewCell。

查看 XIB 的布局,一切看起来都应该如此,但是当我 运行 模拟器中的应用程序时,您可以看到 UIButton 稍微向左移动。

我有 Auto Resizing 属性设置,好像我没有,UIButton 被推入 TableViewCell,这不是我想要的。

知道为什么这不能正确居中吗?

您可以 select 您的按钮并将其水平居中。

有时它可能不起作用(我遇到了同样的问题)。只需以编程方式执行即可,而不必理会它。

例如:

    UIButton * btn = [UIButton alloc] init];
    btn.frame.origin = CGPointMake(
    self.view.frame.width/2       - btn.frame.size.width/2,
    self.view.frame.size.height/2 - btn.frame.size.height/2);

阅读其他帖子,Arda 的回复似乎应该有效,但对我无效。

我所做的是,在 XIBSize Classes 上启用 Auto Layout。然后我意识到我的 XIB 不够宽,因为它之前没有使用 Size Classes,这似乎导致 TableViewCell 内的事情发生了一些变化。在这里和我的代码中进行了一些额外的调整,一切都很好。

现在当我 运行 应用程序时,一切看起来都是正确的。