我有一个带有静态单元格的 UITableView,并且通过搜索隐藏了与搜索不匹配的单元格。有没有办法设置隐藏单元格的行高。我曾尝试使用 if 语句,但它们最终会更改 tableview 中的所有单元格而不是隐藏的单元格。
基本上我想知道当一个单元格被隐藏时,它的行高是否也可以改变
编辑抱歉,当我发布问题时,我不在我的代码中
目前,我有带有静态单元格的 UITableView 和带有搜索显示控制器的搜索栏。搜索栏的代码如下
@property (weak, nonatomic) IBOutlet UISearchBar *searchBar;
@property (strong, nonatomic) IBOutletCollection(UITableViewCell) NSArray *cells;
@property(nonatomic) CGFloat rowHeight;
@implementation tableViewController
@synthesize searchBar;
@synthesize cells;
@synthesize rowHeight;
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
for(UITableViewCell *cell in self.cells)
{
UILabel *label = cell.textLabel;
NSString *text = label.text;
cell.hidden = searchText.length != 0 && ([text rangeOfString:searchText options:NSCaseInsensitiveSearch].location == NSNotFound);
if (cell.hidden) {
rowHeight = 10;
}
}
}
这就是隐藏不匹配的单元格的原因。我遇到的问题是,当单元格被隐藏时,它们会占用显示器中的空间并节省空间并使事情看起来更好我希望将隐藏的单元格设置为 0 或 1 的高度以节省空间(10被用作一个例子,直到我可以让它工作)并让一切都对齐。当搜索栏被取消或从中单击时,它将所有行高设置回 44。此代码发生的情况是所有单元格都设置为 10,而不仅仅是隐藏的单元格。