我希望我的tableView显示包含文本的6行,在本例中为“Example”。据我所知,我已正确设置numberOfSectionsInTableView:
和numberOfRowsInSection:
。请参阅下面的示例代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
// Return the number of rows in the section.
return 6;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = @"Example";
return cell;
}
问题是,当您看到下图显示不应存在/不存在的行时。
如何摆脱显示过去第6行的行?
答案 0 :(得分:57)
执行此操作的generally accepted way是添加框架大小为CGRectZero的页脚视图,如下所示:
[tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]]
这样做是告诉表格有一个页脚,因此它停止显示分隔线。但是,由于页脚有一个CGRectZero作为其框架,因此不会显示任何内容,因此视觉效果是分隔符只是停止。
答案 1 :(得分:21)
Swift 版本
最简单的方法是设置tableFooterView属性:
override func viewDidLoad() {
super.viewDidLoad()
// This will remove extra separators from tableview
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
}
答案 2 :(得分:8)
这是因为你的表视图高度。你写的天气
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
//返回该部分中的行数。 返回6; }
但它的显示行根据表视图大小。如果你不想显示这个额外的行,那么使 UITableView样式平原分组。
答案 3 :(得分:5)
简短回答..
self.tableView.tableFooterView = [UIView new];
答案 4 :(得分:0)
您可以采取以下措施:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:7 inSection:0];
[self.mytableView cellForRowAtIndexPath:indexPath].hidden = YES;
我确信有更好的方法,但这是我想到的第一件事。
答案 5 :(得分:0)
如果您指的是最后一行下方出现的浅灰色线条,那么这只是UITableView
绘制行分隔符的默认方式。
您可以尝试更改Interface Builder中的分隔符样式(请参阅下面的图像),看看其中一个可能更符合您的喜好。
答案 6 :(得分:0)
你没有说出你想要看到的最后一行。如果您只想查看窗口背景,那么只需将表视图嵌入到UIView中,该视图足够高,可以显示您想要查看的行数。如果要在不滚动的情况下查看更多行,则必须根据行数调整包含视图的大小。
答案 7 :(得分:-1)
要以编程方式将其删除,请使用以下命令:
[yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
答案 8 :(得分:-1)
要容易得多:
这很简单!