循环获取相关元素的indexPath
Get the indexPath of the relevant element in a loop
我在 Swift 3.0 的一个项目中工作,我有一个循环可以给我一个对象的状态(在数组序列中给出一个布尔值)。我的要求是如果元素状态是 "true" 我想得到它的相关索引路径,所以使用 indexPath
我可以从我的原始数组中得到整个对象。那么在一个循环中我怎样才能得到它呢?我部分完成的代码如下。在评论中,我已经说明了我想将此 indexPath
.
传递到哪里
func tapFunction(sender: UIButton) {
// This gives me the selected indexPath
print("ID :",sender.accessibilityIdentifier!)
if let rowIndexString = sender.accessibilityIdentifier, let rowIndex = Int(rowIndexString) {
self.sateOfNewSongArray[rowIndex] = !self.sateOfNewSongArray[rowIndex]
}
sender.isSelected = !sender.isSelected
for (element) in self.sateOfNewSongArray {
//This is where I wants to pass the rowIndex that became true
if element == true {
selectedSongList.addingObjects(from: [songList[rowIndex]])
}
}
}
Note: Make sure your array 'sateOfNewSongArray' has boolean types
of elements
尝试以下解决方案:
示例代码1:根据您当前问题中的代码。
func tapFunction(sender: UIButton) {
// This gives me the selected indexPath
print("ID :",sender.accessibilityIdentifier!)
if let rowIndexString = sender.accessibilityIdentifier, let rowIndex = Int(rowIndexString) {
self.sateOfNewSongArray[rowIndex] = !self.sateOfNewSongArray[rowIndex]
}
sender.isSelected = !sender.isSelected
for (index, element) in self.sateOfNewSongArray.enumerated() {
if element {
if let songName:String = songList[index] {
selectedSongList.append(songName)
}
}
}
}
示例代码2:更简单简洁。
func tapFunction(sender: UIButton) {
// This gives me the selected indexPath
print("ID :",sender.accessibilityIdentifier!)
if let rowIndexString = sender.accessibilityIdentifier, let rowIndex = Int(rowIndexString) {
if let songName:String = songList[rowIndex] {
selectedSongList.append(songName)
}
}
}
enumerated()
是一个函数,returns 用索引和数组元素枚举的对序列(通过迭代数组元素)
这是基本的示例代码,供您理解。复制并执行此代码:
let songList = [“cat”, “dog”, “elephant”]
let sateOfNewSongArray = [false, true, false]
let selectedSongList = [String]()
for (index, element) in self.sateOfNewSongArray.enumerated() {
if element {
if let animalName:String = songList[index] {
selectedSongList.append(animalName)
}
}
}
print(“selectedSongList - \(selectedSongList)”)
我在 Swift 3.0 的一个项目中工作,我有一个循环可以给我一个对象的状态(在数组序列中给出一个布尔值)。我的要求是如果元素状态是 "true" 我想得到它的相关索引路径,所以使用 indexPath
我可以从我的原始数组中得到整个对象。那么在一个循环中我怎样才能得到它呢?我部分完成的代码如下。在评论中,我已经说明了我想将此 indexPath
.
func tapFunction(sender: UIButton) {
// This gives me the selected indexPath
print("ID :",sender.accessibilityIdentifier!)
if let rowIndexString = sender.accessibilityIdentifier, let rowIndex = Int(rowIndexString) {
self.sateOfNewSongArray[rowIndex] = !self.sateOfNewSongArray[rowIndex]
}
sender.isSelected = !sender.isSelected
for (element) in self.sateOfNewSongArray {
//This is where I wants to pass the rowIndex that became true
if element == true {
selectedSongList.addingObjects(from: [songList[rowIndex]])
}
}
}
Note: Make sure your array 'sateOfNewSongArray' has boolean types of elements
尝试以下解决方案:
示例代码1:根据您当前问题中的代码。
func tapFunction(sender: UIButton) {
// This gives me the selected indexPath
print("ID :",sender.accessibilityIdentifier!)
if let rowIndexString = sender.accessibilityIdentifier, let rowIndex = Int(rowIndexString) {
self.sateOfNewSongArray[rowIndex] = !self.sateOfNewSongArray[rowIndex]
}
sender.isSelected = !sender.isSelected
for (index, element) in self.sateOfNewSongArray.enumerated() {
if element {
if let songName:String = songList[index] {
selectedSongList.append(songName)
}
}
}
}
示例代码2:更简单简洁。
func tapFunction(sender: UIButton) {
// This gives me the selected indexPath
print("ID :",sender.accessibilityIdentifier!)
if let rowIndexString = sender.accessibilityIdentifier, let rowIndex = Int(rowIndexString) {
if let songName:String = songList[rowIndex] {
selectedSongList.append(songName)
}
}
}
enumerated()
是一个函数,returns 用索引和数组元素枚举的对序列(通过迭代数组元素)
这是基本的示例代码,供您理解。复制并执行此代码:
let songList = [“cat”, “dog”, “elephant”]
let sateOfNewSongArray = [false, true, false]
let selectedSongList = [String]()
for (index, element) in self.sateOfNewSongArray.enumerated() {
if element {
if let animalName:String = songList[index] {
selectedSongList.append(animalName)
}
}
}
print(“selectedSongList - \(selectedSongList)”)