想请教一下各位大大,本人最近研究如何把一些控件抽出来复用,就遇到这个问题。
问题是这样的,创建一个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 のサイズを自由に設定し、それを対応するクラスに関連付けます。以下のメソッドをクラスに実装します
(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
を参照できる記事がここにあります。