2012-08-24 53 views
0

我正在用setTransform方法調整視圖的大小。因爲我不希望視圖變得太小,我得到了這樣的檢查:IOS setTransform和實際邊界/框架

if(view.bounds.size.width > 100 && view.bounds.size.height > 100 && view.bounds.size.width < 300 && view.bounds.size.height < 300){ 
    //..resizing part 
} 

現在我很困惑。通常我會改變我的觀點:

[view setTransform:scaleTransform]; 

但由於IM檢查其大小認爲我會懷疑做這樣的事情:

CGAffineTransform scaleTransform = CGAffineTransformScale(view.transform, xScale, yScale); 
CGRect newRect = CGRectApplyAffineTransform(view.frame, scaleTransform); 
[view setBounds:newRect]; 

這是正確的還是我失去了聯繫?

+0

這兩件事情是不一樣的。第一個選項實際上會縮放整個視圖及其內容。第二個選項調整視圖邊界而不調整內容大小(更像是裁剪)。現在,如果由於UIAutoResizingMask設置,所有內容都能夠正確調整大小,則結果可能看起來相同。 – Till

+0

所以你的建議是什麼,我不應該使用CGAffineTransformScale,但與setBounds規模? – Oritm

+0

這取決於你的需求。如果調整邊界足夠好,那麼就去第二個選項。 – Till

回答

0

我做了什麼來解決這個問題:

如果新的框架比我提供更大的範圍,不翻譯。 如果它在提供的範圍內,請設置新的框架並翻譯。