我正在尝试创建一个带有图像的标签。图像是带圆角的自定义矩形。
我读到了stretchchableImageWithLeftCapWidth:确保角落不会缩放,并且大小为ToTit以放大UILabel框架。
现在整个视图:我在IB中有一个UIView,我在图像中添加了一个ImageView,在它上面添加了一个UILabel。它们都居中(并应保持居中),
我调用的函数将更改UILabel的文本,并应对帧进行必要的更改。
以下是我一直在尝试做的事情:
myLabel.text = hint;
[myLabel sizeToFit];
CGRect r = myLabel.frame;
UIImage* image = [[UIImage imageNamed:@"Bg.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:5];
[image retain];
myImageView.frame = CGRectMake(r.origin.x - 5, r.origin.y - 5, r.size.width + 10, r.size.height + 10);
[myImageView initWithImage:image];
[self setNeedsDisplay];
我错过了什么?如何确保文本和图像在工作时保持居中?
谢谢!
答案 0 :(得分:0)
您可以在每个center
上使用UIView
属性:
myImageView.center = CGPointMake(self.bounds.size.width/2,self.bounds.size.height/2);
这会将myImageView垂直和水平放在自我中心。使用相同的标签。如果您的ImageView需要更大的帧,那么可读性更强的函数CGRectInset()
myImageView.frame = CGRectInset(myLabel.frame, 10, 10);
顺便说一下:
setImage:
或image
属性。