gpt4 book ai didi

arrays - 使用 @objc func 放置一个空的 imageView 数组

转载 作者:行者123 更新时间:2023-11-30 10:31:50 24 4
gpt4 key购买 nike

我想在每次调用 func moveRight 时使用我的 swift 代码来放置一个 ImageView 。我希望每个新的 imageView 在 y 轴上以 50 分隔。现在我的代码可以编译,但调用函数时没有任何变化。但在调试区域我看到计数在增加。

import UIKit

class ViewController: UIViewController {
var myArray = [UIImageView]()
var bt = UIButton()
var count : Int = 0

override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(bt)
bt.backgroundColor = UIColor.systemOrange
bt.frame = CGRect(x: view.center.x - 0, y: view.center.y , width: 50, height: 50)
bt.addTarget(self, action: #selector(moveRight), for: .touchUpInside)
}

@objc func moveRight() {
print("Yes")

myArray.forEach({
$0.backgroundColor = UIColor.systemTeal
self.view.addSubview($0)
})
var ht = 50

myArray.insert(UIImageView(), at: count)

print("Your Count is ", count)

myArray[count].frame = CGRect(x: view.center.x - 0, y: view.center.y + CGFloat(ht), width: 50, height: 50)

count += 1
ht += 50
}
}

最佳答案

您需要将 ht 变量移到 moveRight() 方法之外。

目前,每次运行该方法时,您都会重新创建变量并将其初始值设置为 50,然后使用它来设置您的位置。

你需要做

class ViewController: UIViewController {
var myArray = [UIImageView]()
var bt = UIButton()
var count : Int = 0
var ht = 50 //initialise it here, then update it in the moveRight() method
//etc

然后从方法中删除等效的行。

关于arrays - 使用 @objc func 放置一个空的 imageView 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59020489/

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