簡體   English   中英

如何以編程方式更改視圖大小?

[英]How to change View size programmatically?

stackoverflow中關於此主題的問題很少。 但是沒有一個解決方案適合我。

當用戶點擊表格視圖的行時,我需要顯示彈出窗口。 此彈出窗口應該包含一個tableView 由於Apple推薦不在alertView中使用tableView ,所以,我需要使用較小尺寸的普通UIView

UIView是使用storyboard

以編程方式我嘗試使用代碼來減小大小。

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect newFrame = self.view.frame;

    newFrame.size.width = 200;

    newFrame.size.height = 200;

    [self.view setFrame:newFrame];
}

但它沒有用。

CGRect不僅是寬度和高度,還有x和y。 這樣做:

CGRect newFrame = CGRectMake( self.view.frame.origin.x, self.view.frame.origin.y, 200, 200);

self.view.frame = newFrame;

這只會影響寬度和高度。

您嘗試修改的視圖可能是通過Storyboard附加到UIViewController的視圖,您將無法修改該視圖,嘗試使用Storyboard或以編程方式創建另一個視圖。

既然你需要顯示一個彈出窗口,我會建議你,如果它的iPAD然后繼續UIPopoverController,如果它的iPhone然后只是創建一個新的全屏幕UIView與透明背景(清晰的背景),然后創建一個更新的UIView與新框架,並確保框架大小在中間並附加它(添加子視圖)。

此外,您正在執行的過程將無法工作。創建一個新的UIView並更改框架,然后將subView附加或添加到主視圖

這將解決您的問題。

我想你正在尋找帶有tableView的UIPopOverController ..

請參閱本教程

http://www.raywenderlich.com/29472/ipad-for-iphone-developers-101-in-ios-6-uipopovercontroller-tutorial

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM