0
我有一个图像视图和两个UILabels的笔尖文件,一个在图像上方,另一个在下方。笔尖用于屏幕上的每个页面,我的视图控制器使用嵌套的switch语句来确定每个屏幕使用的图像和文本。我遇到的问题是图像大小不一,有时图像下方的标签不会显示。我希望它始终显示在图像下方4px,所以我设置了一个垂直空间约束,其常量为4,但使用日志语句来打印imageview框架和标签框架的原点和大小告诉我,它放置的不止一个4px以下,可能在屏幕底部。我附上了一些截图来说明问题。第一个屏幕截图显示出现在正确位置的所有内容。是否需要添加代码以使标签始终正确显示,而不管图像高度如何?如何使AutoLayout调整为更改图像大小
而这里是将内容从视图控制器的代码的一个例子:
@implementation ContentViewController
- (id)initForContentSet:(int)setNumber andIndex:(int)indexNumber {
if (self = [super initWithNibName:@"ContentView" bundle:nil]) {
self.contentSet = setNumber;
self.indexNum = indexNumber;
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
[_contentImageView setContentMode:UIViewContentModeScaleAspectFit];
[_contentText setLineBreakMode:NSLineBreakByWordWrapping];
//set up content
switch (_contentSet) {
case 1:
switch (_indexNum) {
case 0:
//first exposure page
[_pageHeader setText:@"The Exposure Triangle"];
[_contentImageView setImage:[UIImage imageNamed:@"exposure-triangle.jpg"]];
[_contentText setText:@"Balance the amount of available light with aperture, ISO, and shutter speed settings."];
break;
case 1:
//second exposure page
[_pageHeader setText:@"Example"];
[_contentImageView setImage:[UIImage imageNamed:@"exposureexample.jpg"]];
[_contentImageView sizeToFit];
[_contentText setText:@"An underexposed photo is too dark, while an overexposed one looks washed out."];
break;
default:
break;
}
break;
首先,使用视图调试来找出标签真正的位置! – matt
看看这个:http://stackoverflow.com/questions/26833627/with-auto-layout-how-do-i-make-a-uiimageviews-size-dynamic-depending-on-the-im –