我正在尝试通过向右移动标签为红色删除图标创建空间来为自定义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);
}
}
我在这里做错了什么?非常感谢你!
答案 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;
}