gpt4 book ai didi

swift - 查找和修改 subview 的困难

转载 作者:行者123 更新时间:2023-11-30 13:34:22 25 4
gpt4 key购买 nike

我在获取对 subview 的引用时遇到一些困难。基本上我有一个 UIView,其中包含自定义 UIView 的集合。我需要的是获取对一个特定 View 的引用来修改它。

我尝试了两种不同的方法,其中第一个作为概念是这样的:

for i in 1...8 {
let myCustomView = MyCustomView(frame: CGRect(0, 0, 100, 100)) // frame is with fake numbers just to write the snippet
myCustomView.customProperty = some property
myCustomView.image = some UIImage
myCustomView.tag = i

addSubview(myCustomView)
}

我尝试以这种方式获取对带有标签 2 的 View 的引用:

if let viewWithTag = self.viewWithTag(2) as! MyCustomView {
viewWithTag.image = a different Image
}

我可以看到 viewWithTag 不为零,但对于我更改的任何属性,应用程序中都没有反射(reflect)任何内容。

访问 subview 的另一种方法如下:

let myViews = self.subviews.filter({$0 is MyCustomView})
let specificView = myViews[1] as! MyCustomView

specificView.image = something else

在本例中,我的 myViews 包含所有 subview ,specialView 包含特定 View ,但应用程序中同样没有反射(reflect)任何内容

请注意,MyCustomView 是 UIImageView 类型,主容器是 UIView

我的方法正确吗?

提前致谢

最佳答案

您可能需要插入 ImageView ,使其意识到它需要更新。

设置图像后,尝试执行以下操作:

viewWithTag.setNeedsDisplay()

此外,请考虑使用标签以外的其他内容来区分自定义 ImageView (例如名称的字符串属性怎么样?),因为标签中使用的通用整数并不能真正告诉您它们的用途。

关于swift - 查找和修改 subview 的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36249537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com