我有一個多行UILabel
,我想啓用放大功能。放大正確尺寸的UILabel&重新渲染字體
我有UIScrollView
嵌入並分鐘變焦設置爲.25,最大變焦爲4。這工作得很好,但是我UILabel
的字體看起來相當總值(GDP)比1
我可以在其他任何縮放級別處理這個方法:
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
爲了重新大小我的UILabel的東西較大的字體,但認爲仍放大,所以它總是看起來很恐怖。
有什麼辦法讓標籤的文本重新渲染一個我完成縮放?
重要的是用戶當前滾動的文字在文字中的位置不會丟失。
(要了解我要做的事情,請注意如何在移動Safari中縮放文本時縮放/消除鋸齒時間,然後清理起來以您當前的縮放比例)
感謝您的詳細解答。 這是否意味着我需要放棄scrollview的內置縮放功能? 或者當我完成縮放時,我只是重新渲染新比例因子的曲面? 這對您的最小/最大縮放設置有什麼影響? – 2010-01-02 18:25:49
在捏手勢正在進行時使用內置縮放,然後在手勢完成時重新渲染。這是獲得體面的縮放縮放性能的唯一方法。 UIScrollView會跟蹤整體縮放比例(這就是爲什麼您需要重寫內容視圖上的轉換存取器以抵消這種情況),因此它仍然會觀察最小/最大縮放設置。 – 2010-01-02 21:39:36
盯着更有意義。所以如果我縮放到150%,我可以將標籤的字體大小更改爲1.5 * currentFontSize,重新計算它們的確切滾動位置,然後重新渲染我的標籤。然後我將縮放重置爲1並重新計算我的最小/最大值?我有這個權利嗎? – 2010-01-04 19:33:56