以编程方式调整 Storyboard 中 UITableView 的 y 值

Posted

技术标签:

【中文标题】以编程方式调整 Storyboard 中 UITableView 的 y 值【英文标题】:Adjust y value of UITableView on Story Board programmatically 【发布时间】:2016-04-24 22:52:04 【问题描述】:

我的故事板上有一个 UITableView。我想根据其他信息以编程方式在 viewDidLoad 中调整它的 y 值。我似乎无法理解。我觉得我错过了一些非常简单的东西。我已经尝试了以下所有方法:

CGRect myFrame = tableView.frame;
[self->tableView removeFromSuperview];
myFrame.origin.y = myLabel.frame.origin.y+21;
tableView.frame = myFrame;
[self.view addSubview:tableView];

还有:

tableView.frame = CGRectMake(tableView.frame.origin.x, myLabel.frame.origin.y+21, tableView.frame.size.width, tableView.frame.size.height);

还有:

[tableView setFrame:CGRectMake(tableView.frame.origin.x, myLabel.frame.origin.y+21, tableView.frame.size.width, tableView.frame.size.height)];

最后:

CGRect myFrame = tableView.frame;
myFrame.origin.y = myLabel.frame.origin.y + 21;
tableView.frame = myFrame;

我从与我类似的其他堆栈问题中找到了这些 sn-ps 代码。他们都没有为我工作。我究竟做错了什么?任何帮助将不胜感激!

【问题讨论】:

为什么这么复杂?为什么要删除FromSuperview?你考虑过自动布局的想法吗? 我只是在尝试多种方法。所有这些都在不同的问题上。如您所见,它们都没有工作@heximal。如果您知道如何解决问题,您可以发布答案吗? 你在使用自动布局吗?如果是这样,您在 tableView 上设置了什么约束? 我没有使用自动布局@beyowulf。除了 tableview 之外,视图的所有其他元素都是以编程方式创建的。这样做的原因是,我可以使用情节提要更轻松地设置自定义单元格和单元格标签上的约束。我想在我把它放在情节提要上之后,必须有一种简单的方法来调整代码中的 tableview 框架 你有没有试过在设置框架之前说self.tableView.translatesAutoresizingMaskIntoConstraints = YES; 【参考方案1】:

我认为你没有设置 Autoresizingmask

使用下面的代码

self.tableView.translatesAutoresizingMaskIntoConstraints = YES

【讨论】:

以上是关于以编程方式调整 Storyboard 中 UITableView 的 y 值的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建的 ViewController 在 Storyboard 上看起来不像

基于在 Storyboard 中使用自动布局创建的另一个视图,以编程方式使用框架创建视图

在具有多个故事板的应用程序中以编程方式从 Storyboard 加载 ViewController

以编程方式覆盖 loadView 和设置 rootViewController,没有 Storyboard

如何以编程方式从 UINavigationController (storyboard) 切换到 UIViewController

如何在 Storyboard 上创建 Segue,从以编程方式注册的 UICollectionViewCell 到新的 UIViewController?