2012-03-08 93 views
0

我在UIScrollView中添加了一些标签,当我滚动时,中间标签的字体大小会变大。之前的中间标签字体大小缩小。这种变化正在逐渐发生。如下所示。标签1向左移动缩小,标签2向中间移动变大。 UIScroll视图中的所有标签。如何在滚动时缩放UIScrollView

enter image description here

我试了一下,像滚动的时候我试图变焦滚动页面,看似复杂,比我还以为......

任何人有好主意吗?谢谢!

回答

3

真的很简单。只要坚持一个UIScrollViewDelegate到滚动视图,做这样的事情..

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    for (int i = 0; i < [scrollView.subviews count]; i++) { 
     UIView *v = [scrollView.subviews objectAtIndex:i]; 
     float position = v.center.x - scrollView.contentOffset.x; 
     float offset = 2.0 - (abs(scrollView.center.x - position) * 1.0)/scrollView.center.x; 
     v.transform = CGAffineTransformIdentity; 
     v.transform = CGAffineTransformScale(v.transform, offset, offset); 
    } 
} 

但是,如果你不被打动仿射变换,你仍然可以使用offset比例缩放正确,而且的UILabel设置为adjustsFontSizeToFitWidth ...你完成了!

只要确保有足够的空间!否则它可能非常容易失控。

假设:

  1. 有在远离这些标签滚动视图没有其他看法。
  2. 它需要水平工作。
+0

该解决方案完美解决了我的问题!谢谢!!! @govi – 2012-03-09 06:43:44

0

它可以用CoreAnimation完成。你必须保持主标签的索引(那个在中间),并且在滚动完成后或者当滚动开始时(在UIScrollViewDelegate中使用一些适当的方法)并且通过动画缩小侧标签。

0

只是当字体的大小(与一个动画块),当它是中间的一个更大,当它不是。

您可以使用​​向UILabel添加一个类别,并将其设置为true/false。