5

iOS9 XCode7 を使用しています labelText Height に従ってセルの高さを動的に変更する必要があります

利用した:

self.tableView.rowHeight=UITableViewAutomaticDimension;

ただし、カスタムメイドのセルでは機能しません。 sizetoFitiOS9で削除されました。

何か提案してください。ありがとう

4

3 に答える 3

1

この文が何を意味するのかよくわかりません (スクリーンショットが役に立ちます)。

「labelText の高さに従ってセルの高さを動的に変更する必要があります」

UITableViewCellを含む がありUILabel、テーブル内の各セルにそのセルのラベルに応じた高さを持たせたいですか ?

これが私が使用するコードです。

私のUITableViewCellクラスでは、測定する静的関数を定義し、.xib ファイルの高さを返します。

@implementation MikesTableViewCell

...

+(CGSize)preferredSize
{
    static NSValue *sizeBox = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        // Assumption: The XIB file name matches this UIView subclass name.
        NSString* nibName = NSStringFromClass(self);
        UINib *nib = [UINib nibWithNibName:nibName bundle:nil];

        // Assumption: The XIB file only contains a single root UIView.
        UIView *rootView = [[nib instantiateWithOwner:nil options:nil] lastObject];

        sizeBox = [NSValue valueWithCGSize:rootView.frame.size];
    });
    return [sizeBox CGSizeValue];
}

@end

次に、私のUIViewControllerクラスでは、UITableViewこのセルを使用して高さを調べるように指示します。

@property (nonatomic) float rowHeight;

UINib *cellNib = [UINib nibWithNibName:@"MikesTableViewCell" bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:@"CustomerCell"];

rowHeight = [MikesTableViewCell preferredSize].height;

...

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return (float)rowHeight;
}

繰り返しますが、これはまさにあなたが探しているものではないかもしれませんが、これが役立つことを願っています.

于 2016-05-04T08:58:26.787 に答える