13

UITableView を含む UIView があります。テーブルビューのデリゲートは UIView に設定されていますが、デリゲート メソッドを呼び出すことはありません。

-(id)init {
    self = [super init];
    if (self) {
        self.tableView = [[UITableView alloc] initWithFrame:self.bounds];
        self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
        self.tableView.dataSource = self;
        self.tableView.delegate = self;
        self.tableView.scrollEnabled = NO;
        self.tableView.layer.cornerRadius = PanelCornerRadius;
        [self addSubview:self.tableView];
    }
    return self;
}

#pragma mark - UITableViewDelegate methods

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSLog(@"height for row");
    int height = [self heightForRowAtIndexPath:indexPath];

    return height;
}

#pragma mark - UITableViewDataSource methods

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    NSLog(@"number of rows");
    if (self.manager.fetchOperation.dataFetchProblem) {
        return 1;
    }

    int numberOfRows = [self.delegate numberOfSectionsInPanel:self];

    return numberOfRows;
}

考えられるすべてのオプションを調べましたが、問題の根本を見つけることができないようです。

編集: numberOfRowsInSection が含まれています。0 を返す可能性がありますが、「行数」の NSLog が呼び出されないため、その可能性はありません。

4

8 に答える 8

16

同様の問題がありました。私の解決策は、セクション数を 1 に設定しなかったためです。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}
于 2014-08-18T18:44:26.203 に答える
0

と inを変更してみてくださいUIViewUIViewControllerviewDidLoad

[[UITableView alloc] initWithFrame:style:]テーブル ビューを作成します。

上記のようにデリゲートとデータ ソースとして self を設定し、この UITableView をこのコントローラーのサブビューとして追加します。

于 2013-09-23T23:22:53.347 に答える
0

tableViewallowsSelectionプロパティを誤って に設定してしまいましたfalse

ストーリーボード ソリューション

テーブル ビューを選択し、次の設定を行います... ここに画像の説明を入力

迅速な解決策

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.allowsSelection = true
}

ノート

  1. 最初は、これは問題だと思いましたUITableViewDelegate(他の回答が示唆しているように)。そうではありませんでした。ストーリーボードのView Controllerにリンクしました。
  2. UITableViewDataSource次に、プロトコルのnumberOfSections(in tableView:)メソッドを実装していないという点で(他の回答が示唆しているように)、これは問題だと思いました。そうではありませんでした。UIKitのドキュメントによると、

// 実装されていない場合、デフォルトは 1 です

  1. 最後に、テーブルビューの設定を確認しました:]
于 2019-09-10T14:56:03.923 に答える