Ios Swift 4-如何从outlet集合中的自定义UIView获取UI元素?

Ios Swift 4-如何从outlet集合中的自定义UIView获取UI元素?,ios,swift,xcode,uiview,uilabel,Ios,Swift,Xcode,Uiview,Uilabel,我有一个DayView的outlet集合,它们是自定义UIView对象。在我的“ClientTaskVC”中,我希望能够引用DayView,并且能够进入并获取其UIElements,每个DayView都有一个dayLabel、dateLabel和checkmarkImg。我不确定是否将所有标签/图像视图放在outlet集合中是一个明智的想法,因为这样更难跟踪,而且看起来是错误的。在我的第一张图片中,我详细说明了这在代码中的外观,以及显示了我的视图控制器和所有视图作为参考 第一张图片: 我尝试将插

我有一个DayView的outlet集合,它们是自定义UIView对象。在我的“ClientTaskVC”中,我希望能够引用DayView,并且能够进入并获取其UIElements,每个DayView都有一个dayLabel、dateLabel和checkmarkImg。我不确定是否将所有标签/图像视图放在outlet集合中是一个明智的想法,因为这样更难跟踪,而且看起来是错误的。在我的第一张图片中,我详细说明了这在代码中的外观,以及显示了我的视图控制器和所有视图作为参考

第一张图片:

我尝试将插座添加到所有标签和图像的实际DayView自定义类中,但当我连接插座时,它只能连接到一个DayView,并且不能对屏幕上的每个DayView对象重复使用,我不认为正确的方法是在自定义DayView类中创建一个outlet集合来引用每个视图标签,所以现在我也不确定如何解决这个问题

第二幅图像:

理想情况下,我想要的是将我的outlet集合放在“ClientTaskVC”中:

@IBOutlet var dayViews: [DayView]!
并调用其UIElements(例如:dayViews[i].dayLbl.text),如下所示:

0中的i的

如果您能帮助我们完成这项工作,我们将不胜感激。谢谢。

将整个视图连接为一个插座:

@IBOutlet weak var dayView: UIView!
您可以循环浏览所有的
DayView
子视图,如下所示:

var dayViewSubviews: UIView = []

for subView in dayView {
    dayViewSubviews.append(subView)
}

对我来说,可能的重复看起来像UICollectionView的案例。@这就是我不使用UICollectionView的原因,因为只有7个视图,而不是更多或更少。有人告诉我这是最理想的方法。@Jumpman987你看到我链接的问题了吗?这是我提交给苹果的xcode9中的一个bug,但解决方法是将outlet拖到元素,而不是将元素拖到outlet。出于某种原因,这使用cmd+click而不是ctrl+click。@KevinDiTraglia我尝试的是迭代我的dayView outlet集合并获取dayView自定义对象上的标签/图像,我可以很好地连接一个outlet集合,但我不能从任何outlet集合索引中使用“dayLbl”、“checkMarkImg”和“dateLbl”。如果我在DayView文件中添加了所有标签等的插座,它将只为一个特定视图设置这些插座,而不是为所有视图设置这些插座,因此我无法遍历它们来显示我想要的信息。
var dayViewSubviews: UIView = []

for subView in dayView {
    dayViewSubviews.append(subView)
}