具有 contentMode UIViewContentModeScaleAspectFit 的 UIImageView 的 UILabel

Posted

技术标签:

【中文标题】具有 contentMode UIViewContentModeScaleAspectFit 的 UIImageView 的 UILabel【英文标题】:UILabel for UIImageView that has contentMode UIViewContentModeScaleAspectFit 【发布时间】:2012-09-14 12:48:08 【问题描述】:

我需要在 UIImageView 上设置一个具有自定义背景颜色的标签。问题是我希望它的宽度与图像视图中的图像完全相同。这是到目前为止的代码:

UIImageView *pictureV = [[UIImageView alloc] initWithFrame:CGRectMake(pictureX, 0, pictureSize.width, pictureSize.height)];
pictureV.image = self.picture.image;
pictureV.contentMode = UIViewContentModeScaleAspectFit;

还有标签:

UILabel *lblName = [[UILabel alloc]init];
lblName.backgroundColor=[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:0.6];
lblName.frame = CGRectMake(pictureV.bounds.origin.x, pictureV.bounds.origin.y + pictureV.bounds.size.height - 30, self.picture.image.size.width, 30);
[lblName setText:self.pictureNote.text];
[lblName setTextAlignment:UITextAlignmentCenter];
[lblName setTextColor:[UIColor whiteColor]];
[pictureV addSubview:lblName]

将 contentMode 设置为 UIViewContentModeScaleAspectFit 时,一些图像比我的 UIImageView 小,我似乎无法使标签的宽度相同。

【问题讨论】:

【参考方案1】:

如果你使用 UIViewContentModeScaleAspectFit,图片将不会占据 UIImage View 的全尺寸。 而不是将您的pictureV 的 contentMode 属性设置为 UIViewContentModeScaleToFill , 然后图像将占用您的 imageView 的整个大小

【讨论】:

以上是关于具有 contentMode UIViewContentModeScaleAspectFit 的 UIImageView 的 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

ImageView contentMode 正确缩放图像?

为啥 uiimageview 的 contentmode 不起作用?

[BS-24] UIImageView的contentMode属性

“ImagePicker”类型的值没有成员“contentMode”

使用 .aspectRatio(contentMode: .fill) 后文本离开屏幕

contentMode