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