视图内的视图(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自动布局:在ViewController中获取视图内的视图宽度