手动设置框架时,UIView子视图不会显示

时间:2014-04-18 12:02:10

标签: ios objective-c uiview uiviewcontroller

我想手动设置子视图的框架。 所以我只用CGRectMake创建一个CGRect,并使用新的CGRect作为子视图的框架。问题是子视图没有显示出来 当我只使用父视图的view.bounds属性并将其作为框架分配给子视图时,所有内容都会显示出来 我还确保框架在显示区域内。

frame = CGRectMake(0, 0, 100, 100);
[self.view addSubview:[[UIView alloc] initWithFrame:frame]];

2 个答案:

答案 0 :(得分:1)

设置子视图框架的好方法是

   subview.frame = CGRectMake(0, 0, 
        CGRectGetWidth(self.view.bounds), 
        CGRectGetHeight(self.view.bounds));

请参阅link

所有值小于CGRectGetWidth(self.view.bounds)& CGRectGetHeight(self.view.bounds)应该可以正常工作

答案 1 :(得分:1)

您问题中的代码将创建一个您没有参考的视图。这意味着它没有背景颜色,内容或其他方法来查看它,您无法设置它。您已添加视图,但它是不可见的。

在将视图添加为子视图之前,首先创建并配置视图,将其分配给局部变量。作为此配置的一部分,为视图提供背景颜色或某些子视图。