Gre*_*reg 17 iphone uiviewcontroller uiview addsubview ios
为什么我的自定义UIView不在UIView其父容器的容器内呈现?所以我拥有的是:
UIView" customViewContainer"(它不占用整个屏幕),和UIView带有XIB文件的 - 它在UIView这里呈现时(使用AspectFit)呈现在父" customViewContainer" 的范围之外用于设置自定义视图的代码是MainViewController的提取:
"切 - 见下面的Update2"
所以我不明白为什么CustomView视图以比父母更大的面积呈现customViewContainer?我想要的是完全按照类型方法customview适合父母" customViewContainer" AspectFit.
谢谢
编辑1(添加说明) - 如果我在父视图中"剪辑子视图"然后它会剪切内容,但我真正需要在父视图区域内渲染自定义视图(而不是整个屏幕区域).所以我需要(a)自定义视图的中心位于父视图的中心,以及(b)正确地将AspectFit视图放入父视图中.有任何想法吗?
编辑2 - 更新
抱歉 - 在原始问题中使用代码复制/粘贴错误 - 似乎无法编辑它所以我将在下面放置正确的版本 - 所以澄清:
MainViewController- 有一个UIView" containerView"(它不占用整个屏幕),并且CustomView- 是一个UIView带有XIB文件 - 它在UIView这里被渲染(带AspectFit)渲染超出了父" containerView" 的界限
使用下面的代码,这现在有意义吗?这个代码的原因是我有一个自定义UIView,但我有一个与之关联的XIB文件,所以这是让我的MainController视图能够使用它的唯一方法.也就是说,在容器视图中MainController view,然后以编程方式将其添加CustomView到容器视图中.
重新"所以设置你正在添加的视图的框架或中心是你想要的" - 你是说我必须以编程方式/手动设置CustomView的尺寸是我想要的(相对于父容器视图)?
我希望有一种方法可以使用声明布局设置来说明如何能够说"从它的XIB文件加载自定义视图,并将aspectFit这个视图放入self.containerView",但是我开始怀疑如果可以的话?
更新后的代码(当我复制/粘贴并更改变量名称等原始问题时出错)
- (void)viewDidLoad
{
[super viewDidLoad];
// Load the custom Altimeter View into this UIControllerView's container UIView for it
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"Customview" owner:self options:nil];
for (NSObject *obj in nibs) {
if ( [obj isKindOfClass:[Customview class]]) {
Customview *cv = (Customview*)obj;
[self.containerView addSubview:cv];
break;
}
}
// UI Layout
self.containerView.layer.borderWidth = 2;
self.containerView.layer.borderColor = [[UIColor redColor] CGColor];
}
Run Code Online (Sandbox Code Playgroud)
Mug*_*nth 24
检查是否选中了IB文件上parent的"Clip subviews"属性.

我认为等效的代码是self.view.clipsToBounds = YES.
如果是这样NO,那么在外部绘制的子视图将被显示,就像它在父项上绘制一样.
| 归档时间: |
|
| 查看次数: |
16619 次 |
| 最近记录: |