我试图UITableView
用一些数据显示一个简单的。我希望设置它的静态高度,UITableView
以便它不会在表格末尾显示空单元格。我怎么做?
代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"%d", [arr count]);
return [arr count];
}
我试图UITableView
用一些数据显示一个简单的。我希望设置它的静态高度,UITableView
以便它不会在表格末尾显示空单元格。我怎么做?
代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"%d", [arr count]);
return [arr count];
}
设置一个零高度的表格页脚视图(可能在您的viewDidLoad
方法中),如下所示:
迅速:
tableView.tableFooterView = UIView()
目标-C:
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
因为表格认为有一个页脚要显示,所以它不会显示超出您明确要求的任何单元格。
界面构建器专业提示:
如果您使用的是xib/Storyboard,您只需将 UIView(高度为 0pt)拖到 UITableView 的底部。
斯威夫特 3 语法:
tableView.tableFooterView = UIView(frame: .zero)
斯威夫特语法:< 2.0
tableView.tableFooterView = UIView(frame: CGRect.zeroRect)
斯威夫特 2.0 语法:
tableView.tableFooterView = UIView(frame: CGRect.zero)
在 Storyboard 中,选择UITableView
,并将属性 Style 从 修改Plain
为Grouped
。
在 Xcode 6.1 上用 swift 实现
self.tableView.tableFooterView = UIView(frame: CGRectZero)
self.tableView.tableFooterView?.hidden = true
第二行代码对展示没有任何影响,可以用来检查是否隐藏。
我现在无法添加评论,所以添加这个作为答案。
@Andy 的回答很好,使用以下代码行可以实现相同的结果:
tableView.tableFooterView = [UIView new];
'new' 方法属于NSObject
类,alloc
并init
为UIView
.
我试过代码:
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
在viewDidLoad部分和 xcode6 显示警告。我放了一个“自我”。在它前面,现在它工作正常。所以我使用的工作代码是:
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
或者您可以调用 tableView 方法将页脚高度设置为 1 点,它会添加最后一行,但您也可以通过设置页脚背景颜色来隐藏它。
代码:
func tableView(tableView: UITableView,heightForFooterInSection section: Int) -> CGFloat {
return 1
}
override func viewWillAppear(animated: Bool) {
self.tableView.tableFooterView = UIView(frame: CGRect.zeroRect)
/// OR
self.tableView.tableFooterView = UIView()
}
使用UITableViewController
接受的解决方案将改变TableViewCell
. 要解决此问题,请执行以下步骤:
ViewDidLoad
在方法中编写下面给出的代码片段。
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
TableViewClass.m
在文件中添加以下方法。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return (cell height set on storyboard);
}
而已。您可以构建和运行您的项目。
在以下方法中:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (([array count]*65) > [UIScreen mainScreen].bounds.size.height - 66)
{
Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [array count]*65));
}
else
{
Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [UIScreen mainScreen].bounds.size.height - 66);
}
return [array count];
}
这里 65 是单元格的高度,66 是 UIViewController 中导航栏的高度。