Arrays 向数组中添加项目

Arrays 向数组中添加项目,arrays,swift,if-statement,uiview,uipangesturerecognizer,Arrays,Swift,If Statement,Uiview,Uipangesturerecognizer,我的swift代码现在使用func addbox将图像视图追加到一个空的图像视图数组 当用户点击按钮widthActivatorBtn时,应允许用户在imageview上选择并更改imageview的宽度。它可以工作,但只有在选择了widthActivatorBtn并将selectNum更改为3时才能工作 我可以影响selectNum更改为3后打开的imageview,但不能影响它之前的imageview。请查看我的gif,您可以看到问题所在。当selectNum更改为3时,所有ImageVie

我的swift代码现在使用func addbox将图像视图追加到一个空的图像视图数组

当用户点击
按钮
widthActivatorBtn时,应允许用户在imageview上选择并更改imageview的宽度。它可以工作,但只有在选择了widthActivatorBtn并将selectNum更改为3时才能工作

我可以影响selectNum更改为3后打开的imageview,但不能影响它之前的imageview。请查看我的gif,您可以看到问题所在。当selectNum更改为3时,所有ImageView都应该能够通过滑块更改其宽度


删除
selectNum
变量,它是导致问题的原因。 当您当时正在创建第一个图像时,
selectNum
不等于3,因此该手势不会添加到第一个图像视图中,而是在点击
width按钮后,将
selectNum
设置为值3,然后当您创建任何图像视图时,该图像视图将获得该手势,并且宽度逻辑工作

@objc func addBOx() {


        let subview = UIImageView()


        subview.isUserInteractionEnabled = true
        emptyArray.append(subview)
        view.addSubview(subview)

        subview.frame = CGRect(x: view.bounds.midX - 0, y: view.bounds.midY + CGFloat(ht), width: CGFloat(widthSize), height: 35)
        subview.backgroundColor = .purple


        ht += 50
        emptyArray.append(subview)

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTapGestured(_:)))
        subview.addGestureRecognizer(tapGesture)

    }

ji
func中添加条件
selectNum==3
,以调整大小。您可以在某个地方重置
selectNum
以停止调整大小。 所以现在当按下
widthActivatorBtn
时,只有宽度会改变。
希望这对您有用。

您的右侧这会有用,但我希望在用户更改宽度之前,必须触摸按钮宽度激活器BTN。因此,如果uiview控制器上已经有imageview,我需要它以某种方式回归并应用于每个imageview。我已经编辑了上述答案,请查看一下,并让我们知道它是否适用于您。
@objc func addBOx() {


        let subview = UIImageView()


        subview.isUserInteractionEnabled = true
        emptyArray.append(subview)
        view.addSubview(subview)

        subview.frame = CGRect(x: view.bounds.midX - 0, y: view.bounds.midY + CGFloat(ht), width: CGFloat(widthSize), height: 35)
        subview.backgroundColor = .purple


        ht += 50
        emptyArray.append(subview)

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTapGestured(_:)))
        subview.addGestureRecognizer(tapGesture)

    }

@objc func widthActivatorBtn() {

        width.backgroundColor = .systemPink

        selectNum = 3
    }

    @objc func ji(sender : UISlider){
      if selectNum == 3 { 
        widthSize = Int(slider.value)
        currentView?.bounds.size.width = CGFloat(slider.value)
      }
    }