为子视图的子视图设置框架
Posted
技术标签:
【中文标题】为子视图的子视图设置框架【英文标题】:Setting frame for subview's subview 【发布时间】:2014-03-24 17:09:04 【问题描述】:我有 xib 定义的视图控制器。
在这个视图控制器中,我添加了子类 UIView。在这个子类 UIView 上,我想添加另一个 uiview。
我有变量 nextRound 是我的自定义视图数据类型。我像这样初始化它:
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"FDCOStaticNextRound" owner:self options:nil];
nextRound = [subviewArray objectAtIndex:0];
nextRound.frame = CGRectZero;
nextRound.alpha = 0.8;
[self addSubview:nextRound];
设置断点后,nextRound 的 frame 确实是 0,0,0,0 但是,它加上了它的 xib 的 frame (0,0,320,91)。
我尝试在进入下一轮时对其进行动画处理(因此它会呈现几秒钟,然后通过上卷/下移动画将其关闭)。然而,即使改变框架似乎也无济于事。断点,帧发生变化,但屏幕上的实际视图没有任何作用。
自动布局已关闭,大小检查器 - 自动调整大小仅设置在左上角。我在视图控制器中也有类似的功能,而且它可以完美地工作,所以我想它必须做一些事情才能将它添加到另一个自定义视图中。
【问题讨论】:
您的实际问题是什么? 好吧,我添加了子视图,将它的框架更改为 0,0,0,0 但是在我使用 [self addSubView:nextRound] 添加它之后,它会添加它的原始框架 【参考方案1】:我设法弄明白了。在我的 xib(属性检查器)中,我没有启用选项剪辑子视图:-/
【讨论】:
以上是关于为子视图的子视图设置框架的主要内容,如果未能解决你的问题,请参考以下文章
如何在具有自动布局的容器视图中将 UITableView 的大小设置为子视图