我有一個應該顯示幾個子視圖的主視圖。那些子視圖是直接的上方和下方彼此(在z軸),並且將下拉(在y軸)和向上移動使用此代碼:以編程方式調整NSView
rectIntersection用來告訴當視圖具有完全移動的並且不再位於前面(當它們不再重疊時,rectIntersection爲null),它一次向下移動2個像素,因爲這全部位於重複計時器內部。我希望我的主視圖(包含這兩個其他視圖的主視圖)向下調整大小,以便隨着背景中的視圖被降低而展開。這是我想要的,代碼:
CGRect mainViewFrame = [mainView frame];
if (!CGRectContainsRect(mainViewFrame, backgroundFrame)) {
CGRect newMainViewFrame = CGRectMake(0,
0,
mainViewFrame.size.width,
(mainViewFrame.size.height + 2));
[mainView setFrame:newMainViewFrame];
}
這樣做是爲了檢查MAINVIEW包含此背景視圖。當backgroundView降低時,主視圖不再包含它,它應該向下擴展2個像素。這會發生,直到背景視圖停止移動,mainView最終包含backgroundView。
問題是mainView根本沒有調整大小。背景視圖正在降低,我可以看到它,直到它從mainView的底部消失。 mainView應該調整大小,但不會在任何方向上改變。我嘗試使用setFrame和setBounds(有和沒有setNeedsDisplay),但沒有任何工作。
我真的只是在尋找一種方法來以編程方式更改主視圖的大小。
爲什麼不調整的'mainView',之前或向下移動'backgroundView'後? 「mainView」的框架大小與「backgroundView」的大小相同嗎?嘗試記錄幀大小。 – 2011-07-17 09:52:34
我不知道如何調整視圖的大小。我嘗試製作一個新的矩形,除了略高一點的高度。設置我的視圖框架/邊界到那個新矩形,但它沒有改變大小。我不知道如何記錄幀大小。 – Elbimio
嘗試'NSLog(@「view frame:%.2f,%.2f」,view.frame.size.width,view.frame.size.height);' – 2011-07-17 20:16:36