Xcode-在interface builder/storyboard中直观地识别自定义视图

Xcode-在interface builder/storyboard中直观地识别自定义视图,xcode,uiview,interface-builder,storyboard,Xcode,Uiview,Interface Builder,Storyboard,如果生成自定义UIView,并将其集成到interface builder中的父视图/视图控制器中,则表示自定义视图的图形元素不可见,如果未指定背景色(我不指定) 在开发过程中,是否有任何方法可以识别不同的自定义视图?有什么方法/技巧来区分它们吗 我能想到的最接近的方法是在IB中设置背景色,然后在自定义视图的实现中删除背景。在Interface Builder中设置背景色的方法,但在代码中重置它是一种简单但有效的技术。两项改进: 如果在一个情节提要场景中有多个自定义视图,则可以使用IBOutle

如果生成自定义UIView,并将其集成到interface builder中的父视图/视图控制器中,则表示自定义视图的图形元素不可见,如果未指定背景色(我不指定)

在开发过程中,是否有任何方法可以识别不同的自定义视图?有什么方法/技巧来区分它们吗


我能想到的最接近的方法是在IB中设置背景色,然后在自定义视图的实现中删除背景。

在Interface Builder中设置背景色的方法,但在代码中重置它是一种简单但有效的技术。两项改进:

  • 如果在一个情节提要场景中有多个自定义视图,则可以使用
    IBOutletCollection
    以编程方式清除所有场景的背景色。因此,在Interface Builder中,为它们指定所有背景色,然后将给定场景的所有自定义视图添加到集合中。然后,您可以在一条语句中为它们设置背景色。因此,例如,如果一个场景中有十几个控件,那么单个
    iOutletCollection
    中的所有控件都被命名为
    viewsCollection

    @property (strong, nonatomic) IBOutletCollection(UIView) NSArray *viewsCollection;
    
    您可以在一条语句中清除所有选项的背景色:

    [self.viewsCollection setValue:[UIColor clearColor] forKey:@"backgroundColor"];
    
  • 通过在“Identity inspector”上的“Document”属性中设置“Label”,还可以使在Interface Builder中识别自定义视图变得更容易:

    完成此操作后,当您查看主面板左侧的文档大纲时,您将看到标签显示:

    然后,使用文档大纲可以更容易地识别场景中的各个视图。您可以像我在这里做的那样使用随机标签,也可以使用自定义视图类的名称,或者其他任何名称

  • 边界矩形 您可能会发现边界矩形很有用。您可以通过转到菜单栏并选择编辑器>画布>显示边界矩形来启用它们

    这里有一个例子。我有一个视图(一个
    UICollectionViewCell
    子类)放在一个nib中。它有单线标签、双线标签和自定义子视图。自定义子视图本身包含一个较小的自定义子视图。这是边界矩形关闭的笔尖:

    这是相同的笔尖,上有边界矩形:

    背景色覆盖 下面是另一种基于设置背景色的技术。此技术要求您的部署目标为iOS 5.0或更高版本

    如前所述,设置背景色以使视图在nib中可见:

    然后切换到Identity Inspector并在用户定义的运行时属性部分添加
    backgroundColor
    。将其设置为希望视图在运行时具有的背景色。例如,如果希望它在运行时为白色:

    如果希望背景色清晰,可以将
    backgroundColor
    设置为不透明度为0的颜色,也可以将其设置为“Nil”而不是任何颜色:


    更新了另一种方法。现在使用“显示边界矩形”选项,这使一切变得更加简单,谢谢!!您可能想看看这样的工具