视图内的视图(iOS,绘图属性)

Posted

技术标签:

【中文标题】视图内的视图(iOS,绘图属性)【英文标题】:Views inside views (iOS, Drawing properties) 【发布时间】:2011-06-24 16:30:50 【问题描述】:

好吧,我意识到我脑子里一片混乱。

真的,目标很简单。我的一个视图中有一个小子视图(我已在 Interface Builder 中添加它)。我正在尝试插入一个小子视图,该子视图会自动调整自己的大小以占据他父视图的确切空间。

Controller *c = [[Controller alloc] initWithNibName:nil bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:c];
[self.containerView addSubview:self.navigationController.view];
[c release]; 

Controller 类包含一个很大的 UIImageView。但我已将视图和图像的属性设置为“缩放以填充”并正确调整自身大小。但是,图像会自动超出视图区域,显示更大并占据所有窗口。

想法?非常感谢!

补充:

应用 meggar 的方法后,我有一个奇怪的行为。容器视图位于位置 277,176,尺寸为 214w,204h。插入的视图以相同的尺寸显示,但向右平移了 100 像素(大约)。

会造成什么样的影响?

【问题讨论】:

【参考方案1】:

将视图的框架设置为其父视图的框架应该可以解决问题,例如:

UIView* parentView = self.navigationController.view.superview;
CGRect myFrame = CGRectMake(0,0,parentView.frame.size.width,parentView.frame.size.height); 

[self.navigationController.view setFrame:parentView.myFrame ];

[self.containerView addSubview:self.navigationController.view];

【讨论】:

非常感谢梅格!工作得几乎完美,问题是视图向右“移位”了 60-80 像素。任何的想法?我已经为视图设置了背景,以便正确欣赏它。显示视图和图像(但移位)......:S 哎呀。您实际上只想要超级视图的宽度和高度,而不是 x 和 y...答案已编辑 神奇的梅格,太棒了。我很感激。感谢您编辑答案。我不得不说我认为它更“自动”。

以上是关于视图内的视图(iOS,绘图属性)的主要内容,如果未能解决你的问题,请参考以下文章

转换绘图视图时iOS绘图出错

如何在表格视图 IOS 内的滚动视图中创建文本字段

IOS:用他的触摸和点击能力保存子视图

iOS自动布局:在ViewController中获取视图内的视图宽度

滚动视图内的pageviewcontroller内的iOS tableview

ios - 单元格表格视图内的视图位置仅在滚动后才会更改