0

ラベルを右に移動して赤い削除アイコン用のスペースを作成することにより、カスタム UITableViewCell のコンテンツをアニメーション化しようとしています。動きは正常に機能しますが、テキスト全体が切り捨てられます。これは想定されていません。十分なスペースがあるため、そうする理由はありません。編集状態ではこんな感じ

ここに画像の説明を入力

これは私のコードです

-(void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];

    if (editing) {
        self.image.alpha = 0.0;
        self.textLabel.frame = CGRectMake(15, 0, 30, 44);
    } else {
        self.image.alpha = 1.0;
        self.textLabel.frame = CGRectMake(10, 0, 30, 44);
    }
}

ここで何が間違っていますか?どうもありがとうございました!

4

2 に答える 2

2

これを使ってみてください:

self.textLabel.numberOfLines = 0;
[self.textLabel sizeToFit];

または、これを試すことができます:

self.textLabel.center = CGPointMake(self.textLabel.center.x + 5, self.textLabel.center.y);

または、これを試すことができます:

self.textLabel.frame = CGRectMake(self.textLabel.origin.x + 5, self.textLabel.origin.y, self.textLabel.bounds.size.width, self.textLabel.bounds.size.height);

または、これを試すことができます:

CGSize textSize = [self.textLabel.text sizeWithFont:self.textLabel.font constrainedToSize:self.textLabel.bounds.size lineBreakMode:self.textLabel.lineBreakMode];
self.textLabel.frame = CGRectMake(self.textLabel.origin.x + 5, self.textLabel.origin.y, self.textLabel.bounds.size.width, textSize.height);
于 2013-06-18T08:35:25.090 に答える
1
-(void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];

    CGRect frame = CGRectZero;

    if (editing) {
        self.image.alpha = 0.0;
        frame.origin = CGPointMake(15, 0);

    } else {
        self.image.alpha = 1.0;
        frame.origin = CGPointMake(10, 0);
    }

    frame.size = [self.textLabel.text sizeWithFont:self.textLabel.font];
    self.textLabel.frame = frame;
}
于 2013-06-18T08:45:12.290 に答える