どうやら、この文字列を直接操作するプロパティなどは存在しないようです。
UILabelを探し出して非表示にするという方法が考えられましたが、これはちょっと複雑なことになりそうだったので、表示するデータがないときはダミーの行を表示するというアプローチを試みました。
表示すべきデータがない場合は、0行ではなく、空文字のダミー行が1つだけ存在するということにします。さらに、このダミー行を選択することができないようにします。これで目的は達せられたようです。
だいたい次のようなコードになります。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return MAX(self.dataArray.count, 1);
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString* CellIdentifier = @"SearchCandidateCell";
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
if (self.dataArray.count > 0) {
Data* data = [self.dataArray objectAtIndex:indexPath.row];
cell.textLabel.text = data.text;
}
else {
cell.textLabel.text = @"";
}
return cell;
}
- (NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.dataArray.count > 0) {
return indexPath;
}
else {
return nil;
}
}
0 件のコメント:
コメントを投稿