如何以编程方式更改视图大小?

时间:2014-05-08 08:16:38

标签: ios uitableview uiview

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];
}

但它不起作用。

4 个答案:

答案 0 :(得分:14)

CGRect不仅是宽度和高度,还有x和y。 所以这样做:

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

self.view.frame = newFrame;

这只会影响宽度和高度。

答案 1 :(得分:0)

您尝试修改的视图可能是通过Storyboard附加到UIViewController的视图,您将无法修改该视图,尝试使用Storyboard或以编程方式创建另一个视图。

答案 2 :(得分:0)

由于您需要显示弹出窗口,我建议您使用 iPAD ,然后继续使用UIPopoverController,如果 iPhone ,则只需创建一个新的全屏UIView具有透明背景(清晰背景),然后再创建一个带有新框架的UIView,并确保框架大小在中间并附加它(添加子视图)。

此外,您正在执行的操作无法正常工作。创建新的UIView并更改框架,然后将subView附加或添加到主视图

这将解决您的问题。

答案 3 :(得分:-1)

我认为你正在寻找带有tableView的UIPopOverController ..

参考本教程

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