我将UILabel
放入自定义UIImageView
,文字正在被删除:
代码:
//self.frame.size.width and height are the same value, self is a square
self.displayNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, (self.frame.size.width - 12), (self.frame.size.height - 12))];
self.displayNameLabel.center = CGPointMake((self.frame.size.width / 2), (self.frame.size.height / 2));
self.displayNameLabel.backgroundColor = [UIColor whiteColor];
self.displayNameLabel.textAlignment = UITextAlignmentCenter;
self.displayNameLabel.font = [UIFont fontWithName:labelFont size:40];
self.displayNameLabel.adjustsFontSizeToFitWidth = YES;
我将字体大小设置为大,然后使用adjustsFontSizeToFitWidth
确保它尽可能大。它声明:
但是,如果此属性设置为YES,并且text属性中的文本超出了标签的边界矩形,则接收器开始缩小字体大小,直到字符串适合
如果我将label.frame设置为:
self.displayNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, (self.frame.size.width - 0), (self.frame.size.height - 0))];
然后按预期工作。
如何将框架设置为:
self.frame.size.width
self.frame.size.height
而不是:
self.frame.size.width - 14
self.frame.size.height - 14
工作?
为什么它被剪裁在顶部?
答案 0 :(得分:2)
您可能需要相应地设置标签的autoresizingMask
属性,以便在调整图像大小时,正确调整标签的框架。或者,您应该在任何视图上添加图像后调用标签上的setNeedsDisplay
。
答案 1 :(得分:2)
属性adjustsFontSizeToFitWidth
只会使标签调整字体大小,直到字符串的宽度适合框架。如果标签不够高,无法容纳最终字体大小,则会剪裁。