静的セルを含む UITableView があり、検索によって、検索に一致しないセルが非表示になります。非表示のセルの行の高さを設定する方法はありますか。if ステートメントを使用しようとしましたが、非表示のセルではなく、テーブルビュー内のすべてのセルが変更されてしまいます。
基本的に、セルが非表示のときに行の高さも変更できるかどうか疑問に思っていました
編集申し訳ありませんが、質問を投稿したときにコードから離れていました
現時点では、静的セルを備えた 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 に設定されます。