将UILabel附加到图像缩略图底部(变化的高度)

时间:2013-01-25 20:54:03

标签: objective-c uilabel

我有一个带有图像视图和标签的视图。图像视图显示不同大小的图像,它固定在顶部(见图)我想动态地将文本标签粘贴到每个图像的底部,图像缩略图和UILabel之间没有任何空格。

2 个答案:

答案 0 :(得分: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;

这将改变标签的位置,如下图所示。我希望这会有所帮助。

答案 1 :(得分: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;