0

我有一个UIScrollView显示和图像,它可以很好地滚动和一切。我想要做的是添加一个UILabelUIScrollView显示图像的标题。我设法做到了,但是当我缩小时UILabel,滚动视图不会缩放并保持在屏幕上的同一位置。我将如何使标签与滚动视图图像一起缩放?这是我的代码:

[super viewDidLoad];
// Do any additional setup after loading the view.

self.scrollView.delegate = self;

//This just creates a image from a URL
NSURL * photoURL = [FlickrFetcher urlForPhoto:self.photoCellName format:2];
NSData * photoData = [NSData dataWithContentsOfURL:photoURL];
self.imageView.image = [UIImage imageWithData:photoData];

//Setting up scroll View
self.scrollView.contentSize= self.imageView.image.size;
self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);

NSLog(@"Name = %@", [self.photoCellName valueForKeyPath:@"description._content"]);
//Assigning title to the label
self.textLabel.text = [self.photoCellName objectForKey:@"title"];
4

3 回答 3

0

确保 label 是滚动视图的子视图。

于 2012-08-04T09:13:32.443 回答
0

我猜你提供UIImageView的视图将通过UIScrollViewUIScrollViewDelegate.

如果没有,我不确定你的缩放是如何工作的。如果您提供它,则必须返回一个UIView包含您UILabel和您的子视图的 a,UIImageView并且您必须手动将转换应用于UIView调整它的大小。

我想在这个 SO 线程中回答了一个类似的问题,并且Dimme(回答它的那个)提供了一个完整的源代码解决方案,希望它有所帮助!

于 2012-08-04T09:05:51.483 回答
0

您应该检查是否设置autoresizingMask了 UILabel 的属性

self.label.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

你也可以在 IB 中做到这一点。然后,如果您要更改其父视图的框架,则标签的框架将在- (void)setNeedsLayout处理过程中更新

...并且不要阻止从 url 中创建图像的主线程- (void)viewDidLoad

于 2012-08-04T20:44:51.547 回答