【发布时间】:2012-06-26 00:26:48
【问题描述】:
我有一个带有静态单元格的 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,而不仅仅是隐藏的。
【问题讨论】:
-
发布一些代码,以便我们了解您已经尝试过的内容。
-
为什么要设置隐藏行的高度?
-
我已经用我的代码更新了上面的帖子
标签: ios xcode uitableview static cells