0

我有一个项目要求在每个 xib 文件上放置一个自定义菜单屏幕。我知道我可以通过创建视图并将其添加为子视图来做到这一点。

我想在 1 个文件中创建该视图,然后在需要的地方调用它,只是不确定如何实现。

请问有什么帮助吗?...

4

1 回答 1

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 
于 2012-12-27T20:25:05.663 回答