将项目添加到数组Swift

用户名

我现在的快速代码使用func addbox将appendimageviews更改为空白array的imageviews。

当用户点击buttonwidthActivatorBtn时,它应允许用户在imageview上进行选择并更改imageveiew的宽度。它仅在选择widthActivatorBtn并将selectNum更改为3时才有效。

我可以影响将selectNum更改为3之后放置的imageview,但不影响它之前的imageviews。查看我的gif文件,您可以看到问题所在。当selectNum更改为3时,所有图像视图均应能够通过滑块更改其宽度。

在此处输入图片说明

import UIKit

class ViewController: UIViewController {

    var slider = UISlider()
    var ht = -90
    var widthSize = 80
    var emptyArray = [UIImageView]()
    var addImageview = UIButton()
    var width = UIButton()
    var currentView: UIView?
    var selectNum = Int()

    override func viewDidLoad() {
        super.viewDidLoad()
        [addImageview,slider,width].forEach {
            $0.translatesAutoresizingMaskIntoConstraints = false
            view.addSubview($0)
            $0.backgroundColor = .systemOrange
        }

        addImageview.setTitle("add imageview", for: .normal)

        width.setTitle("change width", for: .normal)
        addImageview.frame = CGRect(x: view.center.x-115, y: view.center.y + 200, width: 160, height: 40)
        slider.frame = CGRect(x: view.center.x-115, y: view.center.y-200, width: 160, height: 40)

        width.frame = CGRect(x: view.center.x-115, y: view.center.y + 100, width: 160, height: 40)
        addImageview.addTarget(self, action: #selector(addBOx), for: .touchUpInside)
        width.addTarget(self, action: #selector(widthActivatorBtn), for: .touchUpInside)
        slider.addTarget(self, action: #selector(ji), for: .valueChanged)
        slider.minimumValue = 10
        slider.maximumValue = 150

    }

    @objc func widthActivatorBtn() {

        width.backgroundColor = .systemPink

        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)

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

        }


    }

    @objc func handleTapGestured(_ gesture: UIPanGestureRecognizer) {
        currentView = gesture.view

    }


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

    }

}
沙比尔

删除selectNum变量,这是导致问题的原因。当您当时创建的第一个图像selectNum不等于3时,该手势不会添加到第一个imageView中,而是在width button selectNum将其设置为值3之后,当您创建任何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)
      }
    }

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将项目添加到Angular数组

来自分类Dev

无法将项目添加到数组

来自分类Dev

如何将项目添加到数组列表的数组

来自分类Dev

如何将项目添加到数组列表的数组

来自分类Dev

Swift-在将项目添加到数组时展开可选值时意外发现nil

来自分类Dev

Swift-在将项目添加到数组时展开可选值时意外发现nil

来自分类Dev

Swift:如何将字典数组添加到数组?

来自分类Dev

参考正在将项目添加到数组

来自分类Dev

将新项目添加到对象数组

来自分类Dev

使用索引将项目添加到新数组

来自分类Dev

以适当的顺序将项目添加到数组

来自分类Dev

Java将项目作为数组添加到类中

来自分类Dev

将项目添加到IF条件语句数组中

来自分类Dev

如何将单个项目添加到numpy数组

来自分类Dev

将项目添加到每个子数组python

来自分类Dev

将数组中的项目添加到Web表单

来自分类Dev

将项目添加到数组时视图不会更新

来自分类Dev

参考正在将项目添加到数组

来自分类Dev

在JavaScript中按键将项目添加到数组

来自分类Dev

使用MongoDB将新项目添加到数组

来自分类Dev

遍历数组以将每个项目添加到parentNode

来自分类Dev

将 JSON 数组添加到 DynamoDB 项目

来自分类Dev

如果条件将所有项目添加到数组

来自分类Dev

使用 for 循环将项目添加到数组 Laravel

来自分类Dev

将项目从 JSON 数组添加到列表

来自分类Dev

将项目添加到数组中 - 单独

来自分类Dev

将目标C文件添加到Swift项目

来自分类Dev

使用Swift将项目添加到钥匙串

来自分类Dev

如何使用Swift将项目添加到UITableView?