2017-06-05 1 views
1

Ich bin für eine elegante Art und Weise zu durchlaufen ein Array zu durchlaufen undWie durch mehr UILabels

s jeden ihres Wertes zu einem oder mehreren der fünf UILabel zuweisen

Dieser Code zeigt, was ich zu tun versuchen, (obwohl es sehr lange und sich wiederholende)

if touches.count >= 1 { 
     positionTouch1LBL.text = String(describing: touches[0].location(in: view)) 
    } else { 
     positionTouch1LBL.text = "0.0/0.0" 
    } 

    if touches.count >= 2 { 
     positionTouch2LBL.text = String(describing: touches[1].location(in: view)) 
    } else { 
     positionTouch2LBL.text = "0.0/0.0" 
    } 

    if touches.count >= 3 { 
     positionTouch3LBL.text = String(describing: touches[2].location(in: view)) 
    } else { 
     positionTouch3LBL.text = "0.0/0.0" 
    } 

    if touches.count >= 4 { 
     positionTouch4LBL.text = String(describing: touches[3].location(in: view)) 
    } else { 
     positionTouch4LBL.text = "0.0/0.0" 
    } 

    if touches.count >= 5 { 
     positionTouch5LBL.text = String(describing: touches[4].location(in: view)) 
    } else { 
     positionTouch5LBL.text = "0.0/0.0" 
    } 

Antwort

1

Sie Ihre Etiketten in einem anderen Array setzen konnte und durchlaufen sie:

let labelsArray = [positionTouch1LBL, positionTouch2LBL, positionTouch3LBL, positionTouch4BL, positionTouch5LBL] 

for i in 0..<labelsArray.count { 
    // Get i-th UILabel 
    let label = labelsArray[i] 
    if touches.count >= (i+1) { 
     label.text = String(describing: touches[i].location(in: view)) 
    }else{ 
     label.text = "0.0/0.0" 
    } 
} 

Auf diese Weise können der Lage sind, zu einer Gruppe redundanten Code

1

Sie könnten das tun, indem Sie Ihre Etiketten in einem Array setzen und durchlaufen sie auf folgende Weise:

let labelsArray = [UILabel(), UILabel(), ... ] // An array containing your labels 

for (index, element) in labelsArray.enumerated() { 
    if index < touches.count { 
     element.text = String(describing: touches[index].location(in: view)) 
    } else { 
     element.text = "0.0/0.0" 
    } 
} 

Viel Glück!

Verwandte Themen