2012-03-08 94 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。