1

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 より小さくなり、ラベルの幅を同じサイズにできないようです。

4

1 に答える 1

1

UIViewContentModeScaleAspectFitを使用する場合、画像はUIImageビューのフルサイズを取りません。これの代わりに、pictureVのcontentModeプロパティをUIViewContentModeScaleToFillに設定すると、画像はimageViewのサイズ全体になります。

于 2012-09-14T14:35:50.883 に答える