gpt4 book ai didi

ios - 使用标签创建 UIImageView。 swift 3

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:39 24 4
gpt4 key购买 nike

我有一个保存值的 int n。我想创建一个循环来创建带有连续标签的 UIImageViews。

我的代码:

var n:Int = 1
if arrayOfEmojis.count != 0 {
for emoji in arrayOfEmojis {

let emojiView = self.view.viewWithTag(n) as! UIImageView
emojiView.image = emoji
...

}

但是没有创建 emojiView。当我使用“if let emojiView =”时,它也没有创建。我使用的“viewWithTag(n)”功能错了吗?

_______edit_________

使用 .viewWithTag() 是错误的,必须分配一个带有 .tag 属性的标签。但是,现在,我想使用分配的标签来获取该 View 。我想现在我可以使用 .viewWithTag() 函数了吗?调用时我得到 unexpectedly found nil... :(n 在之前创建 imageViews 的循环中使用,并更新为创建的 imageViews 的数量):

if arrayOfEmojis.count != 0 {
for j in 1...n {

var view1 = self.view.viewWithTag(j) as! UIImageView
arrayOfEmojiViews.append(view1)
}
}

最佳答案

我认为您误解了使用 view​With​Tag(_:​) 的目的:

Returns the view whose tag matches the specified value.

创建一个新实例,它用于根据其标签值获取特定标识的 View 。

如果我没记错的话,你想创建新实例,方法是:

I want to create a loop that will create UIImageViews with consecutive tags*.

它应该类似于:

var n:Int = 1
var currentTag = 0
if arrayOfEmojis.count != 0 {
for emoji in arrayOfEmojis {

let emojiView = UIImageView(image: emoji)
emojiView.tag = currentTag
currentTag += 1
// don't forget to set the frame for the emojiView
...
}
}

对于每次迭代,UIImageView 的新实例将通过使用 init(image:​) 创建initializer- 并设置其 tag根据 currentTag 变量的当前值“连续”赋值。

关于ios - 使用标签创建 UIImageView。 swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42892461/

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