2

これは私が最近気づいた奇妙なことです。次のコードでaccessoryTypeを設定した後でも、UITableViewセルのアクセサリタイプが表示されません

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"LocationCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: CellIdentifier] autorelease];
}

if (indexPath.section == 0) {
    cell.textLabel.text = @"Move to a New Location";
}else{
    cell.textLabel.text = [self.locArray objectAtIndex:indexPath.row];
}
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
return cell;
}    

どんなアクセサリータイプを設定しても構いません。セルには常にテキストラベルのみが表示されますが、ボタンは表示されません。私は何かが足りないのですか?UITableViewCellを使用するのはこれが初めてではないことに注意してください。私はこれまでこの問題に遭遇したことがありません。その間、私はこれをiOS6でテストしており、iPadシミュレーターとそれ自体のデバイスの両方でこの動作を確認しました。

4

1 に答える 1

1

上手!私はこれを解決しました。私のViewcontrollerは当初、UITableViewControllerではなくUIViewControllerのサブクラスでした。これは、TableViewとは関係のないメインビューにビューを追加することを考えて行いました。次に、それをUITableViewControllerに変更しましたが、すべて完璧に機能しました。ただし、これは、UiViewControllerとUitableViewControllerによって提供される柔軟性の間のトレードオフです。これは、TableViewのヘッダービューまたはフッタービューのいずれかにこれらの追加のビューを追加する必要があるためです。それにもかかわらず、私はそれをどうにかして対処しなければなりません。これが誰かの助けになることを願っています。

于 2012-11-02T20:13:02.873 に答える