2010-07-14 103 views
0

這個問題是similar to this one,但希望它會拿起更多的興趣,因爲我嘗試了一些東西。縮放UITextView和內容大小

我想在UITextView中做標準的平底鍋滾動。我的委託實現UITextViewDelegate和實現此方法

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    return self; 
} 

[這實際上可能是錯的,但在返回[[self subviews] objectAtIndex:0]沒有改變任何東西(奇怪)。

所以捏的東西的作品,但是當有一個縮放,UITextView實例失去了所有的想法,讓我平移內容的正確。我試圖通過包括這種方法來解決這個問題

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale { 
    CGSize size = self.contentSize; 
    size.width *= scale; 
    size.height *= scale; 
    self.contentSize = size; 
} 

但是所有這些猜測並沒有讓我走得很遠(並不奇怪)。

編輯︰我做了這樣的事情,除了它吹了一下後,它不完全是我想要的。這是一個UIPincheGestureRecognizeraction方法:

- (void) doSomething:(id)sender { 
    CGFloat factor = [(UIPinchGestureRecognizer *)sender scale]; 
    float size = 12 * factor; 
    if (size > 6 && size < 40) { 
     self.font = [[UIFont fontWithName:self.font.fontName size:12 * factor] autorelease]; 
    } 
} 

回答

0

增加,這將有很多一致性的增加變焦。你也可以調整文本寬度,我現在要看看:

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view { 
    frameBeforeZooming = self.frame; 
} 

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale { 
    self.frame = frameBeforeZooming; 
} 

顯然你需要在頭文件中定義一個CGRect。

3

我知道這是老了,但我與它的麻煩近日,所以希望這可以幫助別人:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
     for(UIView *subView in self.subviews) 
     { 
     if([subView isKindOfClass:[UIWebDocumentView class]]) 
      return subView; 
     } 
     return [self.subviews lastObject]; 
} 
+0

看起來不錯+1,我會檢查它在某些時候,接受這個答案,如果它是對。謝謝! – 2012-12-11 17:31:41