将故事板中的多个 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 并执行必要的操作
我的 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 并执行必要的操作