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

标签 ios swift xcode uiview uilabel

我有一个 DayViews 的导出集合,它们是自定义 UIView 对象。在我的“ClientTaskVC”中,我希望能够引用 DayView 并能够进入并获取其 UIElement,每个 DayView 都有一个 dayLabel、dateLabel 和 checkmarkImg。我不确定将所有标签/ ImageView 放在导出集合中是否是一个聪明的主意,因为它会更难跟踪并且看起来不对。在我的第一张图片中,我详细说明了这在代码中的样子,并显示了我的 View Controller 和我的所有 View 作为引用。

第一张图片:outletcollections

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

第二张图片:outletsDayViewClass

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

@IBOutlet var dayViews: [DayView]!

并像这样调用它的 UIElements(例如:dayViews[i].dayLbl.text):

for i in 0 ..< dayViews.count {
        let date = Date().addingTimeInterval(TimeInterval(86400 * i))
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd"

        // See how the dayViews label, 'dayLbl' is being referenced
        dayViews[i].dayLbl.text = dateFormatter.string(from: date)
        dayViews[i].dayLbl.textAlignment = .center
    }

如果您能提供有关如何使用奥特莱斯系列执行此操作的任何帮助,我们将不胜感激。谢谢。

最佳答案

连接整个 View 作为导出:

@IBOutlet weak var dayView: UIView!

您可以像这样遍历所有 DayView 的 subview :

var dayViewSubviews: UIView = []

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

关于ios - Swift 4 - 如何从 socket 集合中的自定义 UIView 获取 UI 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47541322/

相关文章:

swift - 坐标设置时自定义 MKAnnotation 不移动

xcode6 - 如何使用 Swift Playground 打印到控制台?

ios - 限制 UISwipeGestureRecognizer 仅检测 UIImageView 区域内的滑动

ios - 将图片放入 DynamoDB

iphone - 如何将图像从一个按钮拖到 iPhone 中的另一个按钮?

ios - 如何使用 objective-c 从 CloudKit 的 Assets 字段中检索图像

swift - Swift 中的 Accelerate 框架出现问题

javascript - Google maps V3 JS 没有发生 "center_changed"来自 UIWebView iOS6(iPhone)

ios - Facebook Graph API 和应用 secret

c - dsymutil 的 --flat 选项的预期用途是什么