将故事板中的多个 UILabels 附加到一个 IBOutlet

attach several UILabels from storyboard to one IBOutlet

我的 Storyboard 中有 15 个标签,它们只是文本,也是从情节提要中设置的,我想做的是对它们进行样式设置,但是以编程方式进行,因此我需要创建 15 个 IBOutlets 在我的 ViewController 中,我想知道是否有任何其他方法可以做到这一点,如果没有 15 IBOutlets,是否可以创建 1 个 IBOutlet 并将它们全部附加到那个?因为创建其中的 15 个有点压力...

对于要组合在一起的所有标签,您可以使用 Outlet Collections 而不是 IBOutlet 执行此操作:

一种方法是按住 ctrl 并从故事板拖动到编辑器和 select 出口 collection

这将在您的代码中创建 @IBOutlet weak var labelCollection: UILabel!

这工作正常,但您需要在循环时添加额外的类型检查:

@IBOutlet weak var labelCollection: UILabel!

func setCustomLayout()
{
    for label in labelCollection2.subviews
    {
        if let label = label as? UILabel
        {
            // do your custom set up here
        }
    }
}

我喜欢做的是首先在代码中创建特定的出口 collection 如果我像这样跟踪相同的类型:

@IBOutlet var labelCollection: [UILabel]!

我从编辑器拖到故事板

然后我可以按如下方式使用它

@IBOutlet var labelCollection: [UILabel]!

func setCustomLayout()
{
    for label in labelCollection
    {
        // do your customization here
    }
}

然后您可以循环遍历 IBOutletCollection 中的 UIView 并执行必要的操作