想请教一下各位大大,本人最近研究如何把一些控件抽出来复用,就遇到这个问题。
问题是这样的,创建一个UIView,简称V1,背景颜色设置成红色,设置size Freedom,大小300 X 300,左上弄一个Button,左下弄一个Button,分别设置好左上,还有右下等宽高约束。然后在控制器的StoryBoard里面创建一个一个UIView,简称V2, 大小 200 X 200,按照多种网上的方法,比如设置StoryBoard里面V2的class是V1...,或者什么都不设置,在m文件配置nib...等方法,我最后只能显示左上的Button,看不到右下角的label。又或者看到两个子空间,但是红色部分200x200,右下角的Button就会超出红色部分父控件的View。
现在就是想请教一下,如何能在StoryBoard里面,创建一个UIView,然后调用我自定义UIView的内容,通过修改在StoryBoard里面的View的大小,在加了约束的时候,不会出现以上子控件超出父控件的情况?
uiview默认是不带Xib的但是可以通过手动添加,之前项目里面越到过这种情况:创建一个空的Xib,xib的size设置为freedom,然后和对应的类关联,在类里面实现如下方法
(TextXibView*)textXibView
{
NSArray *nibView = [[NSBundle mainBundle]loadNibNamed:@"TextXibView" owner:nil options:nil];
return [nibView objectAtIndex:0]; // 这个方法是为了拿出xib视图
}
这样的话uiview和类已经关联好了,在其他任何地方调用就可以了。
TextXibView *textView = [TextXibView textXibView];
textView.frame = CGRectMake(100, 500, 200, 200);
或者这里有篇文章可以参考一下http://www.cnblogs.com/wendingding/p/3750378.html