0

画像ビューとラベルのビューがあります。画像ビューにはさまざまなサイズの画像が表示され、上部に固定されています (画像を参照) 画像のサムネイルと UILabel の間にスペースを入れずに、すべての画像の下部にテキスト ラベルを動的に接着したいと考えています。

4

2 に答える 2

1

プログラムでそれを行うことができます。UILabelが"label"に、画像が"imageView"変数にアタッチされていると仮定します。

CGRect labelFrame = label.frame;

labelFrame.origin.y = imageView.frame.origin.y + imageView.frame.size.height + any_space_you_want_between_image_and_label;

label.frame = labelFrame;

これにより、imageViewのすぐ下のラベルの位置が変更されます。これがお役に立てば幸いです。

于 2013-01-25T21:30:08.433 に答える
1

あなたが言ったようにあなたUIViewContentModeScaleAspectFitがコンテンツモードに使うので、解決策は少し難しいです。画像の最終的な高さ(UIImageView内の画像の実際のサイズ)を実際に計算する必要があります。

    //UIImage *img = ...; UIImageView *imgView = ....
    CGFloat imageWidth = img.size.width;
    CGFloat imageHeight = img.size.height;
    CGFloat viewWidth = imgView.frame.size.width;
    CGFloat viewHeight = imgView.frame.size.height;
    float actualHeight = imageHeight * viewWidth / imageWidth;
// this is the actual height of the UIImage inside the UIImageView
    CGRect labelFrame = label.frame;
    labelFrame.origin.y = imageView.frame.origin.y + actualHeight + any_space_you_want_between_image_and_label;
    label.frame = labelFrame;
于 2013-01-25T22:00:09.173 に答える