我刚刚开始使用xCode 4.2进行iOS开发,并发现了故事板.它们似乎非常适合快速原型设计.
我想知道的是如何创建自己的自定义控件,我可以在多个视图中使用.
例如,假设我想要一个在每个视图中都很常见的自定义标题栏.我想我应该能够用它自己的控制器定义该控件,并从多个视图中实例化它.我只是不知道如何,到目前为止我读过的教程和问题都没有解决这个问题.
有小费吗?
解决方法
我发现一种方法是执行以下步骤:
>创建一个新的xib文件并将模拟指标设置为“自由形式”以允许调整大小. (MyControl.xib)
>使用控件中我想要的对象填充控件.
>为视图创建一个UIViewController. (MyViewController.h& MyViewController.m)
>将MyControl.xib的文件所有者设置为自定义类MyViewController
>在我想要包含控件的xib中,我将UIScrollView放在我想要控件的位置(常规View也可以工作). (Parent.xib)
>为UISCrollView创建一个IBOutlet,我将把控件放入ParentController中.
>在ParentController中创建MyViewController的实例.
>在ParentController中,将MyViewController的视图添加为UIScrollView的子视图.
在代码中,这意味着
@implementation ParentController @synthesize myScrollView; MyViewController* myController; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super init]; if(self) { myController = [[MyController alloc] initWithNibName:@"MyView" bundle:nil]; [myScrollView addSubview:myController.view]; } }
这似乎工作,并允许我分离控件和父实现,但我不禁认为有更好的方法.