2015-06-02 58 views
2

我正在研究一個可可應用程序,其中我想動態地添加,刪除,調整視圖的大小。 enter image description here 上面顯示的是在父視圖中有三個視圖的圖像,其中視圖-B可以被添加或刪除,並且基於我們需要調整視圖-C的大小。如何動態添加和刪除兩個視圖之間的視圖

任何可可/ objective-c的幫助。

+0

嘗試'addSubview' /'removeFromSuperview'並重新計算每個的大小。我沒有處理約束。他們可能會緩解這項工作。 –

+0

你應該考慮使用['NSStackView'](https://developer.apple.com/library/mac/documentation/AppKit/Reference/NSStackView_Class/index.html)這種UI,如果你可以要求OS X 10.9或更晚。 –

回答

1
//To add a subview 
[parentView addSubview:subview]; 

//To remove a subview 
[subview removeFromSuperview]; 

//To resize a view 
[subview setFrameSize: NSMakeSize(width, height)]; 
[subview setFrameOrigin: NSMakePoint(originX, originY)]; 

如果您需要設置基礎上的大小或其他視圖位置的視圖的框架,你可以使用它的大小和產地等一個觀點框架...

例如,移動C使其與邊界A接壤並佔據視圖中的其餘空間:

NSSize size = NSMakeSize(parentView.frame.size.width, parentView.frame.size.height - a.frame.size.height); 
NSPoint origin = NSMakePoint(a.frame.origin.x, a.frame.origin.y + a.frame.size.height); 

[c setFrameSize: size]; 
[c setFrameOrigin: origin]; 
相關問題