Luc*_*uca 24 iphone cocoa-touch objective-c uiview
我在使用addSubview时遇到问题.
示例代码:
ParentView *myParentView = [[ParentView alloc] initWithNibName:@"ParentView " bundle:nil];
ChildeView *myChildeView = [[ChildeView alloc] initWithNibName:@"ChildeView" bundle:nil];
//... parent frame resized with setFrame lets say to x:0, y:0, W:320, H:411
[[myParentView view] addSubview: [myChildeView view]];
Run Code Online (Sandbox Code Playgroud)
我的孩子在添加时比父母大,并且不会将其框架调整为父边界.我不能在父级上使用"剪辑子视图",如果父级框架未再次调整大小,则"自动调整子视图"似乎不起作用.是否有一个属性使子视图自动调整大小到其父级边界,而不对每个子节点使用setFrame?
Jef*_*ley 34
如果您没有使用自动布局,您是否尝试过设置子视图的自动调整大小?试试这个:
myChildeView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
Run Code Online (Sandbox Code Playgroud)
此外,您可能需要致电
myParentView.autoresizesSubviews = YES;
Run Code Online (Sandbox Code Playgroud)
获取父视图以在其帧更改时自动调整其子视图的大小.
如果您仍然在父视图框架之外看到子视图绘制,则父视图很可能不会剪切其内容.要解决这个问题,请致电
myParentView.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
cat*_*cat 12
只需将父视图的框架复制到子视图,然后添加它.之后,自动调整将起作用.实际上你应该只复制大小CGRectMake(0,0,parentView.frame.size.width,parentView.frame.size.height)
childView.frame = CGRectMake(0, 0, parentView.frame.size.width, parentView.frame.size.height);
[parentView addSubview:childView];
Run Code Online (Sandbox Code Playgroud)
在Xcode 9.4,Swift 4中经过测试 解决此问题的另一种方法是,您可以添加
override func layoutSubviews() {
self.frame = (self.superview?.bounds)!
}
Run Code Online (Sandbox Code Playgroud)
在子视图类中。
归档时间: |
|
查看次数: |
318055 次 |
最近记录: |