我有一个项目要求在每个 xib 文件上放置一个自定义菜单屏幕。我知道我可以通过创建视图并将其添加为子视图来做到这一点。
我想在 1 个文件中创建该视图,然后在需要的地方调用它,只是不确定如何实现。
请问有什么帮助吗?...
我有一个项目要求在每个 xib 文件上放置一个自定义菜单屏幕。我知道我可以通过创建视图并将其添加为子视图来做到这一点。
我想在 1 个文件中创建该视图,然后在需要的地方调用它,只是不确定如何实现。
请问有什么帮助吗?...
这是我这样做的一个例子。
我这样做是为了创建自定义 tableview 单元格,但这可以用任何类型的类来完成。
关键是这些项目在界面构建器中设置了自定义类。
====== 更新 ======
我没有想到的另一件事是。您可能想要创建特定类型的视图并将该视图放入每个 XIB 文件中。
如果是这样的话。然后您可以创建一个新类,它是 UIView 的子类
然后,您只需将 UIView 添加到您的 xib(其中没有任何内容)并在身份资源管理器中设置其“自定义类”值。这将告诉 Objective C 这个 UIView 实际上是“自定义类”类型。它将 Alloc 初始化您的自定义类并将其放在那里。在这种情况下,您可以使用代码构建菜单或其他任何内容,并将其放入您之前插入的空白 UIView 实际所在的类中。
我最常见的情况
是使用连接到插座的“容器”UIView,然后使用上面链接的 nibLoader 方法将视图从创建它的 nib 中拉出,然后将该对象添加为容器的子视图
@interface HomeViewController ()
@property (nonatomic, strong) MyCustomView *customView;
@end
@implementation HomeViewController
@synthesize customViewContainer = _customViewContainer; // IBOutlet from header
@synthesize customView = _customView;
- (MyCustomView*) customView{
if (_customView == nil){ // Lazy Load
// Load From Nib Loader linked to above
}
return _customView;
}
- (void) viewDidAppearAnimated:(BOOL) animated {
this.customView.frame = this.customViewContainer.bounds;
[this.customViewContainer addSubView:this.customView];
}
@end