更改 UITableView 的大小并将按钮放在它下面

Posted

技术标签:

【中文标题】更改 UITableView 的大小并将按钮放在它下面【英文标题】:Change size of UITableView and put button under it 【发布时间】:2012-06-25 17:40:07 【问题描述】:

我正在尝试缩短 UITableView 的高度并在下方放置一个按钮。我尝试使用此代码:

// set the frame size
CGRect frame = self.view.frame;
frame.size.height = 355;
self.view.frame = frame;

//set up the button
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
           action:@selector(buttonPress:)
 forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Add to Current Workout" forState:UIControlStateNormal];
button.frame = CGRectMake(20, 365, 280, 40);
[self.view addSubview:button];

在 viewDidAppear 方法中,但所发生的只是视图变短,当我向下滚动时,按钮覆盖了我的一个单元格(它也随着 tableview 滚动)。如何更改 tableview 的高度并在视图下方有一个按钮?

【问题讨论】:

【参考方案1】:

self.view 根据文档返回“最初发生触摸的视图”。要更改 tableView,您将需要使用 self.tableView,它返回“由控制器对象管理的 tableView”,假设您在 TableViewController 中执行此操作。更改第一行和第三行:

CGRect frame = self.tableView.frame;
frame.size.height = 355;
self.tableView.frame = frame;

要让按钮出现在 tableView 下,按照this question,您可以将其设置为 tableView 的 tableFooterView。所以把最后一行改成:

self.tableView.tableFooterView = button;

【讨论】:

我完全忽略了这一点。我进行了更改,但问题仍然存在。桌子的高度确实发生了变化,但按钮仍然不在桌子下方。它在表格的顶部,但只有在我向下滚动到它时才能看到。有什么想法吗? 您是否也将最后一行从self.view 更改为self.tableView?您仍然希望将按钮添加到 self.view 我刚刚找到了另一个帮助回答这个问题的 SO。相应地编辑了我的答案。【参考方案2】:

您需要减小表格视图的大小,而不是整个视图的大小(就像您目前所做的那样)。

应该是 self.tableView.frame = frame(其中 tableview 是你的 UITableView 的名称)。

【讨论】:

以上是关于更改 UITableView 的大小并将按钮放在它下面的主要内容,如果未能解决你的问题,请参考以下文章

UITableView:单击按钮时如何动态更改单元格高度?

框架中间的JPanel

UITableView 在 iOS 7 中不根据其高度显示

自定义 UITableView 单元格中的 UILabel 未随核心数据更改而更新

问:如何更改 UITableView 中的单元格大小,以显示所有标签?

UITableView 不显示背景图片