我正在構建一個繪製圖表的原型iPad應用程序。我有以下看法層次:對UIView框架屬性感到困惑
的UIView 的UIScrollView DiagramView:UIView的 的TabBar 導航欄
而一個UIViewController子類都抱着一起。
在第一次繪製圖表之前,我計算圖的尺寸,並將DiagramView框架設置爲該尺寸,並將scrollview的內容大小也設置爲。
-(void)recalculateBounds
{
[renderer diagram:diagram shouldDraw:NO];
SQXRect diagramRect = SQXMakeRect(0.0,0.0,[diagram bounds].size.width,[diagram bounds].size.height);
self.frame = diagramRect;
[(UIScrollView*)[self superview] setContentSize:diagramRect.size];
}
我應該透露幀被設置爲約1500 x 3500,我知道這是荒謬的。在進入優化渲染代碼之前,我只想專注於應用程序的其他部分。
這個效果很好,除了傳遞給drawRect的矩形不是我設置的大小,而且我的圖形在底部被剪切了。它接近我設定的尺寸,但寬度更大,高度更短。另外值得注意的是,如果我強制框架比我所知道的圖表所需要的大得多,那麼drawRect:rect足夠大,並且不會發生剪裁。當然,這讓我想知道框架大小是否需要考慮像工具欄一樣的其他屏幕空間,但是我閱讀文檔告訴我框架在超視圖座標中,這將是滾動視圖,所以我認爲我不會需要擔心這樣的事情。
任何想法是什麼導致這種差異?
我不認爲你的描述中有任何東西指向一個問題。檢查contentMode和contentStretch屬性的組合是否導致視圖被調整大小。 – NWCoder 2010-03-30 22:52:05
我嘗試在scrollview和圖視圖上設置這些,但沒有任何更改。 :( – user157196 2010-03-30 23:22:47