0

我想创建一个 UIView,它会在用户操作时出现在几个不同的 UIViewControllers 中。例如,每当用户单击“?”时,“如何”弹出视图。它弹出的按钮包含有关用户感兴趣的特定操作的相关信息。视图还可能具有其他元素,例如“完成”按钮和将保存文本的 UITextView 等...

直观地说,它让我想到用 .h、.m 和 xib 文件创建一个单独的 UIView,并且每个需要这个 UIView 的 UIViewController 将简单地分配 + 初始化它并执行 [self.view addSubView:flexUIView] 或插入动画。嗯……不行……

我找不到任何教程来解释如何做这样的事情。

有没有人熟悉这种方法并有一些方向?

如果不是,这种情况的常用方法是什么?

4

3 回答 3

1

Alloc init 不会像在 ViewControllers 中那样加载自定义 UIView 的 nib。您应该在 alloc init 之后使用以下代码加载 nib

假设你有 CustomView.h、CustomView.m、CustomView.xib

        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil];
    yourView = (CustomView *)[nib objectAtIndex:0];
于 2012-08-07T10:28:05.947 回答
0

我还发现这个教程也有一个项目文件的链接,它提供了一个关于如何做到这一点的更好的想法:

创建可重用的 UIView

于 2012-08-07T10:38:56.853 回答
0

这是我编写的使用 .xib、.h、.m 文件创建自定义 UIView 的教程。我添加了两个示例项目,展示了 Interface Builder 和编程方法。

https://github.com/PaulSolt/CompositeXib

于 2013-08-22T22:47:17.800 回答