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