Ios 如何确定按钮是否被按下?

Ios 如何确定按钮是否被按下?,ios,arrays,swift,uibutton,Ios,Arrays,Swift,Uibutton,我正在尝试为我的孩子制作一个简单的应用程序 下一步是 检测按下的ui按钮 为空数组指定该数组的特定数组的值 钮扣 目前我有两个按钮(总共有20多个) 它们都与具有图像阵列的PageViewController相连 // the array private var contentImages = ["", "", "", ""

我正在尝试为我的孩子制作一个简单的应用程序

下一步是

  • 检测按下的
    ui按钮
  • 为空数组指定该数组的特定数组的值 钮扣
  • 目前我有两个按钮(总共有20多个)

    它们都与具有图像阵列的
    PageViewController
    相连

    // the array
    private var contentImages = ["",
                                 "",
                                 "",
                                 ""]
    
    //the array of gallery images lettera A
    private let contentImagesA = ["letteraA",
                                  "ape",
                                  "albero",
                                  "arcobaleno"]
    
    
    // the array of gallery immages lettera B
    private let contentImagesB = ["letteraB",
                                  "barca",
                                  "balena",
                                  "banana"]
    
    我需要根据点击的按钮显示不同的数组,但我不知道如何做到这一点。 简而言之,应该是:

    如果按下按钮A,则显示阵列A的图像


    如果按下按钮B,则显示数组B的图像。

    一种方法是使用包含数组作为值的
    字典,然后使用键的某种ID(您可以在Swift中阅读有关
    字典的更多信息)

    所以你可以这样做:

    let content = ["buttonA" : ["letteraA",
                                "ape",
                                "albero",
                                "arcobaleno"],
                   "buttonB" : ["letteraB",
                                "barca",
                                "balena",
                                "banana"]]
    
    在“按钮操作”中,您将从键中获取正确的数组,然后调用一个方法,该方法将执行您希望对该数组执行的任何操作:

    @IBAction func tapLA(sender: UIButton) {
       if let aArray = content["buttonA"] {
           populateAndDoYourMagicHere(withArray: bArray)
       }
    }
    
    @IBAction func tapLB(sender: UIButton) {
       if let bArray = content["buttonB"] {
           populateAndDoYourMagicHere(withArray: bArray)
       }
    }
    
    func populateAndDoYourMagicHere(withArray array: [String]) {
           contentImages = array
           //do your magic here
    }
    

    希望这有意义并对您有所帮助。

    实现这一点的一种方法是使用包含数组作为值的
    字典,然后使用某种键ID(您可以在Swift中阅读有关
    字典的更多信息)

    所以你可以这样做:

    let content = ["buttonA" : ["letteraA",
                                "ape",
                                "albero",
                                "arcobaleno"],
                   "buttonB" : ["letteraB",
                                "barca",
                                "balena",
                                "banana"]]
    
    在“按钮操作”中,您将从键中获取正确的数组,然后调用一个方法,该方法将执行您希望对该数组执行的任何操作:

    @IBAction func tapLA(sender: UIButton) {
       if let aArray = content["buttonA"] {
           populateAndDoYourMagicHere(withArray: bArray)
       }
    }
    
    @IBAction func tapLB(sender: UIButton) {
       if let bArray = content["buttonB"] {
           populateAndDoYourMagicHere(withArray: bArray)
       }
    }
    
    func populateAndDoYourMagicHere(withArray array: [String]) {
           contentImages = array
           //do your magic here
    }
    

    希望这会对您有所帮助。

    选择按钮后,运行加载图片的方法

    @IBAction func tapLA(sender: UIButton) {
        openPicturesFrom(contentImagesA)
    }
    
    func openPicturesFrom(arr: Array) {
        //here you have array and you can start opening pictures
    }
    

    选择按钮后,运行加载图片的方法

    @IBAction func tapLA(sender: UIButton) {
        openPicturesFrom(contentImagesA)
    }
    
    func openPicturesFrom(arr: Array) {
        //here you have array and you can start opening pictures
    }
    

    您也可以采用这种方法: 在第一个控制器中定义所有阵列

     // define globally
       var imageDictinary = Dictionary<Int, Array<String>>()
       var imageArray:[String] = Array()
    
    添加标签从1到26的按钮(字典中的数组数)。将
    onbutton单击
    方法分配给所有按钮操作

    @IBAction func onButtonClick(sender: UIButton) {
        let images:Array = imageDictinary[sender.tag]!;
         imageArray = images
         openPageController()
     }
    
     openPageController(){
        // open page controller here programatically
        }
    
     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
            let page:PageViewController  = segue.destinationViewController as! PageViewController
            page.images = imageArray
        }
    
    在这里,您只需编写打开
    pageController
    一个按钮操作的代码。使用seague打开它

    每次单击特定按钮时,其对应的数组将分配给
    imageArray
    ,您可以在整个代码中使用该数组


    快乐编码:)

    您也可以遵循以下方法: 在第一个控制器中定义所有阵列

     // define globally
       var imageDictinary = Dictionary<Int, Array<String>>()
       var imageArray:[String] = Array()
    
    添加标签从1到26的按钮(字典中的数组数)。将
    onbutton单击
    方法分配给所有按钮操作

    @IBAction func onButtonClick(sender: UIButton) {
        let images:Array = imageDictinary[sender.tag]!;
         imageArray = images
         openPageController()
     }
    
     openPageController(){
        // open page controller here programatically
        }
    
     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
            let page:PageViewController  = segue.destinationViewController as! PageViewController
            page.images = imageArray
        }
    
    在这里,您只需编写打开
    pageController
    一个按钮操作的代码。使用seague打开它

    每次单击特定按钮时,其对应的数组将分配给
    imageArray
    ,您可以在整个代码中使用该数组


    快乐编码:)

    我不知道你的用户界面如何?为什么不能用UICollectionView代替UIButton呢?我已经创建了一个UICollectionView,这是一个非常好的建议。非常感谢。现在我被困在获取单元格索引:1。我已经创建了一个var-letterIndex:Int=0。。。2.然后在函数didSelectItemAtIndex中分配letterIndex=indexPath.row,但在另一个视图控制器中,我想要这个数字,但它没有看到它,它给了我“未解析的标识符”您可以在第二个ViewController中设置一个类似selectedIndex的变量,并在PerformsgueWithIdentifier方法中为其设置值。我不知道您的UI如何?为什么不能用UICollectionView代替UIButton呢?我已经创建了一个UICollectionView,这是一个非常好的建议。非常感谢。现在我被困在获取单元格索引:1。我已经创建了一个var-letterIndex:Int=0。。。2.然后在函数didSelectItemAtIndex中,我分配了letterIndex=indexath.row,但在另一个视图控制器中,我想要这个数字,它没有看到它,它给我“未解析的标识符”,你可以在第二个视图控制器中设置一个变量,如selectedIndex,并在performsgueWithIdentifier方法中为它设置值。