UITableViewCell setEditing截断标签

时间:2013-06-18 08:30:07

标签: ios uitableview uianimation

我正在尝试通过向右移动标签为红色删除图标创建空间来为自定义UITableViewCell的内容设置动画。运动工作正常,但整个文本被截断,这是不应该的,我没有理由为什么它这样做,因为有足够的空间。这就是编辑状态下的样子

enter image description here

这是我的代码

-(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);
    }
}

我在这里做错了什么?非常感谢你!

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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;
}