2012-08-04 116 views
0

我有一个UIScrollView显示和图像,它滚动罚款和一切。我想要做的是在UIScrollView上添加一个UILabel来显示图像的标题。我设法做到了这一点,但是当我缩小UILabel时,不会使用滚动视图进行缩放并保持在屏幕上的相同位置。我该如何做到这一点,使标签与scrollView图像缩放?这里是我的代码有:UILabel缩放与UIScrollView

[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"]; 
+1

您是否设置了* UILabel *的* autoresizingMask *属性? – voromax 2012-08-04 08:09:34

+0

不,我如何找到这个属性? – 2012-08-04 18:05:44

回答

0

我猜您提供的UIImageView如将由UIScrollView通过实现在UIScrollViewDelegate的方法进行缩放视图。

如果不是,我不确定你的缩放是如何工作的,然后。如果您要提供,则必须返回UIView,其中包含您的UILabelUIImageView的子视图,您将不得不手动将转换应用于UIView以调整其大小。

我想,类似的问题在this SO thread回答,并Dimme(即回答它的人)的源代码提供了完整的解决方案,希望它帮助!

0

确保标签是您的滚动视图的子视图。

+0

如果我在故事板中创建标签,我该如何将它制作为子视图?我只是把它放到UIImage View? – 2012-08-04 18:02:03

+0

如果视图被分层放置在另一个视图下并且只有在您点击小三角形时才可见,则在左侧边栏上的故事板(文档大纲)中。 ![这里是图片](http://iwarepro.com/subviews.png)。 按钮和标签是View的子视图,但NavigationItem不是。 – 2012-08-05 07:20:32

0

你应该检查,如果你设置你的UILabel的autoresizingMask财产

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

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

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