6

UITableViewのカスタムセルとして使用されるUITableViewCellを継承するPostListTableCellクラスがあります。

セル内のいくつかのラベルのサイズを変更する必要があるため、次のメソッドを呼び出しました

- (void)layoutSubviews {
    [super layoutSubviews];
    [_titleLabel sizeToFit];
}

しかし、問題は、UITableView がロードされたときに、_titleLabel のサイズが変更されないことです。

ここに画像の説明を入力

しかし、このセルをクリックして選択すると、タイトルのサイズが変更されました。

ここに画像の説明を入力

データをロードするコードは次のとおりです。

- (PostListTableCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *PostListTableCellIdentifier = @"PostListTableCell";
    PostListTableCell *cell = (PostListTableCell*) [tableView dequeueReusableCellWithIdentifier:PostListTableCellIdentifier];

    if (cell == nil) {
        cell = [[PostListTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:PostListTableCellIdentifier];
    }

   Post *post = (Post*)_posts[indexPath.row];
    [cell loadPost:post];

    return cell;
}

誰でも助けてもらえますか?

4

3 に答える 3

2

問題は、Interface Build でラベルを作成するときに設定した制約を使用して、ラベルのサイズを再度変更する自動レイアウトです。残念ながら、自動レイアウトの下で階層はConstraints > Frameです。

于 2013-11-07T12:35:14.853 に答える