所以,大多数问题都是“我的tableView只显示第一行,出了什么问题?”。 好吧,我需要的恰恰相反。
我有一个SearchBar
(不是Search Display Controller
),在用户开始输入之前,我只想显示第一行而不是其他内容。
我的TableView
内容为Dynamic Prototypes
,内容为Prototype Cells
。
第一个是我想要展示的唯一一个,但它显示其他的空白。
https://www.dropbox.com/s/q4ak6z3gbc0gh5c/Screenshot%202014-07-22%2011.24.22.png
这是我的tableView:numberOfRowsInSection:
。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSInteger numberOfRows = 0;
if ([self.searchBar.text isEqualToString:@""]) {
numberOfRows = 1;
}
return numberOfRows;
}
所有帮助将非常感谢! \ O /
答案 0 :(得分:1)
可能有一个更好的解决方案,但正如之前提出的那样:
CGRect frame = [self.tableView frame];
frame.size.height = [self tableView:self.tableView heightForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
self.tableView.frame = frame;
答案 1 :(得分:0)
在您的视图控制器中-tableView:numberOfRowsInSection:
确保tableView
等于self.tableView
,然后返回1:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.tableView) {
return 1;
} else {
return yourDataModel.count;
}
}
答案 2 :(得分:0)
您必须在创建(alloc)时更改UITableView的contentView或框架的大小。
默认情况下(44px)或自定义,此高度必须与UITableViewCell相同。
答案 3 :(得分:0)
写下以下4行以制作一行表格。如果要扩展表的内容,只需使tableview可滚动。
tblView = [[UITableView alloc]initWithFrame:CGRectZero];
tblView.separatorColor = [UIColor clearColor];
tblView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
tblView.scrollEnabled = NO;