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 回答