Ios 仅两行UITableView
我在具有一个节的Nib上使用UITableView控件,并将委托/数据源设置为我的控制器,其中表数据数组仅初始化为2项。但是,当在模拟器中运行时,我看到在表视图中呈现额外的空行。如何使UITableView仅渲染两行Ios 仅两行UITableView,ios,uitableview,Ios,Uitableview,我在具有一个节的Nib上使用UITableView控件,并将委托/数据源设置为我的控制器,其中表数据数组仅初始化为2项。但是,当在模拟器中运行时,我看到在表视图中呈现额外的空行。如何使UITableView仅渲染两行 谢谢 您需要确保使用的数组计数为节中的单元格数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [myArray count]
谢谢 您需要确保使用的数组计数为节中的单元格数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [myArray count];
}
您需要确保使用的数组计数为节中的单元格数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [myArray count];
}
您可以将表视图的框架大小减小为2*cellHeight 或者任何必要的高度。假设每个单元格的高度为44像素,您只有一个分区,因此没有分区标题,您可以执行以下操作:
self.tableView = [[UITableView alloc]
initWithFrame:CGRectMake(x-coord, y-coord, width, 88)
style:UITableViewStylePlain];
假设每个单元格的高度为44像素,则只显示2个单元格。您可以将表格视图的框架大小减小为2*cellHeight 或者任何必要的高度。假设每个单元格的高度为44像素,您只有一个分区,因此没有分区标题,您可以执行以下操作:
self.tableView = [[UITableView alloc]
initWithFrame:CGRectMake(x-coord, y-coord, width, 88)
style:UITableViewStylePlain];
假设每个单元格的高度为44像素,则只能显示2个单元格。您可以从viewDidLoad调用此方法:
- (void) addFooter
{
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
v.backgroundColor = [UIColor clearColor];
[self.tableView setTableFooterView:v];
}
您可以从viewDidLoad调用此方法:
- (void) addFooter
{
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
v.backgroundColor = [UIColor clearColor];
[self.tableView setTableFooterView:v];
}
我遇到了一个类似的问题,如何只为包含数据的单元格显示分隔符。tableView在分配给它的宽度和高度的区域中呈现尽可能多的行。您在numberOfRowsInSection中指定的号码仅用于确定它应该调用cellForRowAtIndexPath的次数 为了克服空单元格分隔线渲染的困难,我执行了以下操作:
UIView *separatorView = [[UIView alloc] initWithFrame:CGRectMake:
(0, cell.frame.size.height-1,
cell.frame.size.width, 1)];
[separatorView setBackgroundColor:[UIColor lightGrayColor]];
[separatorView setAlpha:0.8f];
[cell addSubView:separatorView];
禁用整个tableView的分隔符。您可以在Interface builder中的tableview检查器中执行此操作,也可以通过调用[yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]
在cellForRowAtIndexPath中,使用单元格填充tableview创建新的UIView并将其设置为单元格的子视图。此视图的背景为浅灰色,略微透明。您可以通过以下方法实现此目的:
UIView *separatorView = [[UIView alloc] initWithFrame:CGRectMake:
(0, cell.frame.size.height-1,
cell.frame.size.width, 1)];
[separatorView setBackgroundColor:[UIColor lightGrayColor]];
[separatorView setAlpha:0.8f];
[cell addSubView:separatorView];
此视图的宽度为1像素,与默认分隔符相同,它在底部延伸单元格的长度
由于cellForRowAtIndexPath的调用频率仅与您在NumberOfRowInSection中指定的频率相同,因此这些子视图将仅为具有数据且应具有分隔符的单元格创建
希望这有帮助。我遇到了一个类似的问题,即如何仅显示包含数据的单元格的分隔符。tableView在分配给它的宽度和高度的区域中呈现尽可能多的行。您在numberOfRowsInSection中指定的号码仅用于确定它应该调用cellForRowAtIndexPath的次数 为了克服空单元格分隔线渲染的困难,我执行了以下操作:
UIView *separatorView = [[UIView alloc] initWithFrame:CGRectMake:
(0, cell.frame.size.height-1,
cell.frame.size.width, 1)];
[separatorView setBackgroundColor:[UIColor lightGrayColor]];
[separatorView setAlpha:0.8f];
[cell addSubView:separatorView];
禁用整个tableView的分隔符。您可以在Interface builder中的tableview检查器中执行此操作,也可以通过调用[yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]
在cellForRowAtIndexPath中,使用单元格填充tableview创建新的UIView并将其设置为单元格的子视图。此视图的背景为浅灰色,略微透明。您可以通过以下方法实现此目的:
UIView *separatorView = [[UIView alloc] initWithFrame:CGRectMake:
(0, cell.frame.size.height-1,
cell.frame.size.width, 1)];
[separatorView setBackgroundColor:[UIColor lightGrayColor]];
[separatorView setAlpha:0.8f];
[cell addSubView:separatorView];
此视图的宽度为1像素,与默认分隔符相同,它在底部延伸单元格的长度
由于cellForRowAtIndexPath的调用频率仅与您在NumberOfRowInSection中指定的频率相同,因此这些子视图将仅为具有数据且应具有分隔符的单元格创建
希望这有帮助。设置
urtableview.frame=(x,y,width,[rowheight * num of rows])
设置
如果不需要节或页脚,请为表提供一个空页脚 在viewDidLoad中添加
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
看
另一种方法是返回一个空的页脚视图。如果您需要上一节的页脚,这一点尤其有用
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
最后,这里是另一个与实现此目的的其他方法的链接
如果不需要节或页脚,请为表提供一个空页脚 在viewDidLoad中添加
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
看
另一种方法是返回一个空的页脚视图。如果您需要上一节的页脚,这一点尤其有用
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
最后,这里是另一个与实现此目的的其他方法的链接
添加一个空uiview作为tableview的底部视图
tabelview.tableFooterView=UIView添加一个空UIView作为tableview的底部视图
tableView.tableFooterView=UIView能否将您的-nsintegerNumberOfSection粘贴到tableView:UITableView*tableView和-NSIntegertableView:UITableView*tableView行数Section:NSIntegersection代码中。您是否使用分组表视图?能否显示您的代码?您是如何向单元格中添加数据的?请粘贴您的-NSInteger
NumberOfSectionsTableView:UITableView*表格视图和-NSIntegertableView:UITableView*表格视图行数Section:NSIntegersection代码。您是否使用分组表视图?能否显示您的代码?如何将数据添加到单元格中?是的,我使用的是该值,但是在模拟器中呈现的行更多。你可以用一个简单的例子来试试。如果你使用数组计数,你确定只有2个对象吗?不可能有比您在numberOfRowsInSection中定义的更多的单元格:如果您要否决某个答案的人,请至少留下一条注释说明原因。是的,我正在使用该值,但是,在模拟器中呈现的行更多。你可以用一个简单的例子来试试。如果你使用数组计数,你确定只有2个对象吗?不可能有比您在numberOfRowsInSection中定义的单元格更多的单元格:如果您要否决某个答案的人,请至少留下一条注释说明原因。或者,您可以将表格设置为分组,然后通过以下方式禁用背景:self.tableView.backgroundColor=[UIColor clearColor],如果在iPad上self.tableView.backgroundView=nil或者,您可以将表格设置为分组,然后通过self.tableView.backgroundColor=[UIColor clearColor]禁用背景,如果在iPad上self.tableView.backgroundView=nil,添加页脚视图与生成的行数有什么关系?java_pill不是问如何只生成2行,java_pill问的是如何摆脱这样一个事实,即UITableView默认情况下使用行填充包含的UIView,而不考虑内容。这解决了这个问题。我认为你需要再次阅读这个问题。但是,当在模拟器中运行时,我看到在表视图中呈现额外的空行,额外的行,aka方法numberOfSectionsInTableView:和numberOfRowsInSection:告诉UITableView要呈现的行之外的行。这就是您刚才所说的,询问如何摆脱这样一个事实,即UITableView默认情况下使用行填充包含的UIView,而不考虑内容。这与您的上一条评论相矛盾。添加页脚视图与生成的行数有什么关系?java_pill不是问如何只生成2行,java_pill是问如何摆脱这样一个事实,即UITableView默认情况下使用行填充包含的UIView,而不考虑内容。这解决了这个问题。我认为你需要再次阅读这个问题。但是,当在模拟器中运行时,我看到在表视图中呈现额外的空行,额外的行,aka方法numberOfSectionsInTableView:和numberOfRowsInSection:告诉UITableView要呈现的行之外的行。这就是您刚才所说的,询问如何摆脱这样一个事实,即UITableView默认情况下使用行填充包含的UIView,而不考虑内容。这与你最后的评论相矛盾。