Ios 如何从xib创建自定义uiview

Ios 如何从xib创建自定义uiview,ios,objective-c,uiview,interface-builder,Ios,Objective C,Uiview,Interface Builder,我最近参与了一个项目,高级工程师创建了一个自定义选项卡栏。他完全删除了传统的标签栏,并用自己的标签栏代替。查看代码,我可以看到他创建了HOFooterBar.h、HOFooterBar.m和HOFooterBar.xib文件。在.xib文件中,他画出了interface builder中的页脚应该是什么样子。他继承了UIView课程。在.h文件中,他为类创建了一个协议,以便可以从视图中给定的操作中执行命令。在主视图控制器上,他只是在它所属的位置添加了一个UIView,并在identity ins

我最近参与了一个项目,高级工程师创建了一个自定义选项卡栏。他完全删除了传统的标签栏,并用自己的标签栏代替。查看代码,我可以看到他创建了HOFooterBar.h、HOFooterBar.m和HOFooterBar.xib文件。在.xib文件中,他画出了interface builder中的页脚应该是什么样子。他继承了UIView课程。在.h文件中,他为类创建了一个协议,以便可以从视图中给定的操作中执行命令。在主视图控制器上,他只是在它所属的位置添加了一个UIView,并在identity inspector中将该类更改为HOFooterBar


这就是我所看到的,但是我试图用我自己的代码来重现结果,但它不起作用。我添加到视图控制器的UIView显示为白色。有一次,我将UIView手动添加到我的代码中(没有IB),它成功了。但我需要能够从interface builder添加它。有没有办法让这一切发生,为什么对我不起作用?如果我不够清楚,我可能会遇到更多问题,因此一旦您编写了自定义视图(请确保它继承自
UIView
) 您可以转到主xib,并在右下角确保选择了对象(立方体对象),然后搜索自定义视图。从那里,您可以将该自定义视图拖动到主视图中,然后在identity inspector中将该自定义视图指定为自定义视图类的实例


如果自定义视图的内容是以编程方式创建的(这听起来像是您的高级工程师朋友在其头文件/实现文件中所做的),那么自定义视图将在xib中显示为空,并且在运行时,自定义视图将填充以编程方式提供给它的内容

因此,一旦编写了自定义视图(确保它继承自
UIView
) 您可以转到主xib,并在右下角确保选择了对象(立方体对象),然后搜索自定义视图。从那里,您可以将该自定义视图拖动到主视图中,然后在identity inspector中将该自定义视图指定为自定义视图类的实例


如果自定义视图的内容是以编程方式创建的(这听起来像是您的高级工程师朋友在其头文件/实现文件中所做的),那么自定义视图将在xib中显示为空,并且在运行时,自定义视图将填充以编程方式提供给它的内容

因此,一旦编写了自定义视图(确保它继承自
UIView
) 您可以转到主xib,并在右下角确保选择了对象(立方体对象),然后搜索自定义视图。从那里,您可以将该自定义视图拖动到主视图中,然后在identity inspector中将该自定义视图指定为自定义视图类的实例


如果自定义视图的内容是以编程方式创建的(这听起来像是您的高级工程师朋友在其头文件/实现文件中所做的),那么自定义视图将在xib中显示为空,并且在运行时,自定义视图将填充以编程方式提供给它的内容

因此,一旦编写了自定义视图(确保它继承自
UIView
) 您可以转到主xib,并在右下角确保选择了对象(立方体对象),然后搜索自定义视图。从那里,您可以将该自定义视图拖动到主视图中,然后在identity inspector中将该自定义视图指定为自定义视图类的实例


如果自定义视图的内容是以编程方式创建的(这听起来像是您的高级工程师朋友在其头文件/实现文件中所做的),那么自定义视图将在xib中显示为空,并且在运行时,自定义视图将填充以编程方式提供给它的内容

要使用.xib创建视图,我们可以使用以下步骤

  • 创建自定义UIView子类
  • 创建custom.xib并从identity inspector设置自定义类
  • 创建自定义视图实例,如下所示
  • 使用将视图添加到其super视图中

  • 是相同的参考问题

    要使用.xib创建视图,我们可以使用以下步骤

  • 创建自定义UIView子类
  • 创建custom.xib并从identity inspector设置自定义类
  • 创建自定义视图实例,如下所示
  • 使用将视图添加到其super视图中

  • 是相同的参考问题

    要使用.xib创建视图,我们可以使用以下步骤

  • 创建自定义UIView子类
  • 创建custom.xib并从identity inspector设置自定义类
  • 创建自定义视图实例,如下所示
  • 使用将视图添加到其super视图中

  • 是相同的参考问题

    要使用.xib创建视图,我们可以使用以下步骤

  • 创建自定义UIView子类
  • 创建custom.xib并从identity inspector设置自定义类
  • 创建自定义视图实例,如下所示
  • 使用将视图添加到其super视图中

  • 是相同的参考问题

    您是否执行了[self.view addSubview:yourButton]?不,我希望从interface builder开始做所有事情。我没想到必须以编程方式将其添加到子视图中。通常,在IB中,如果从代码中添加按钮,则不必执行该行。如果我这样做,它会起作用。但是我想在identity inspector中更改视图,并在以后显示它。您是否从nib加载视图?我会做一些类似于
    yourtabar=[[NSBundle mainBundle]loadNibNamed:@“yourtabar”所有者:self选项:nil]objectAtIndex:0]然后是
    self.view addSubview:yourtabar]
    如果我这样做,它就会工作。但我希望能够在identity inspector中更改uiview并加载它,而不是以编程方式加载它
    UINib *nib = [UINib nibWithNibName:@"YourCustomView" bundle:nil];
    YourCustomView *view = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];
    
    [self.view addSubview:view];