een set of IBOutlet's doorlopen in swift

Ik zal er wel over heen zoeken, maar kan het niet vinden.

In een view heb ik een tiental verschillende buttons die met code aangepast moeten worden, b.v. met

.backgroundColor = .clear

.layer.cornerRadius = 5

.layer.borderWidth = 1


 

dat betekend dat ik voor iedere button dezelfde code schrijf.

Zou graag dat in een loop doen.

Hoe kan ik dat het beste opvangen? Ik kan iedere IBOutlet in een array stoppen en deze doorlopen, maar dan moet ik onthouden welke buttons er zijn.

 

Is het mogelijk om in swift alle outlets te vinden?

 

Suggesties?

Misschien is dit een oplossing?

Hoi Jakko,

Ik gebruik al collections die gescheiden zijn en moeten blijven. Daarnaast zouden er nog andere aanpassingen moeten plaats vinden in beide collections en enkele andere outlets.

Wel door je post een brainfart gekregen. Wat ik kan doen is alles taggen en de rest ook in een collection stoppen en dan alle collections in een totaal array en deze ook door lopen met een laatste poetsdoek.

Bedankt

Wat je zou kunnen doen is je Storyboard openen, vervolgens je button selecteren en dan je identity inspector openen. Onder User Defined Runtimes Attributes kun je ook instellingen doen.

 

Keypath: layer.cornerRadius, Type: Number, Value: 5

 

Meer info: https://www.ios-blog.com/tutorials/objective-c/user-defined-runtime-attributes/

@Moi , Klopt als een zwerende vinger. Maar het voorbeeld hierboven was slechts een voorbeeld. Er zijn wat user preferences die z.g het wat dynamisch maken. Maarrr ik ga het artiklel wel lezen

 

Bedankt

Gewoon als terug koppeling. Ik heb zo een set van 5 functies gemaakt waarmee ik alle knoppen en velde opmaak, kan dus een enkele button/veld zijn of een collectie ( array ) van buttons/velden. Hoef dan maar in 1 file te kijken en aan te passen.

 

func makeUpButton_Credentials( button: Any){

//

func doMakeUpFor( button: UIButton) {

button.layer.borderWidth = 3

button.layer.cornerRadius = 15

button.layer.borderColor = UIColor.white.cgColor

}

if button is UIButton {

doMakeUpFor(button: button as! UIButton)

} else if let butArr = button as? [UIButton] {

for button in butArr {

doMakeUpFor(button: button)

}

} else {

assert(false, “Is not a Button”)

}

}

Nog een andere mogelijkheid: https://www.natashatherobot.com/ios-a-beautiful-way-of-styling-iboutlets-in-swift/