2016-04-29 12 views
-3
[self.navigationItem.leftBarButtonItems enumerateObjectsUsingBlock:^(UIBarButtonItem* item, NSUInteger i, BOOL *stop) { 
     item.customView.alpha = alpha; 
    }]; 
    [self.navigationItem.rightBarButtonItems enumerateObjectsUsingBlock:^(UIBarButtonItem* item, NSUInteger i, BOOL *stop) { 
     item.customView.alpha = alpha; 
    }]; 

Wie konvertiert man diesen Code in Swift? Vielen Dank.Wie konvertiert man diesen Code von Objective-C in Swift?

+0

Sie für Schleifen – Bhupesh

+0

Sehr schwer jetzt zu entscheiden, welche didn‘Autor, Downvoted Annahme akzeptieren beantworten zu können t versuchen Sie alles, um das Problem zu lösen:/ – Injectios

+0

Sie sollten versuchen, die schnelle Sprache zumindest zu lernen. –

Antwort

2

In Swift, leftBarButtonItems ist eine optionale Anordnung [UIBarButtonItem]?, daher kann es mit optional Verkettungs und forEach() aufgezählt werden. customView ist auch eine optionales UIView?, so Zuordnung zur alpha Eigenschaft ist auch mit optionalen Verkettungs getan:

self.navigationItem.leftBarButtonItems?.forEach { item in 
    item.customView?.alpha = alpha 
} 
1

Es gibt eine Menge cooler obj-c zu schnellen Websites da draußen. Benutze einen von ihnen und bereite das Ergebnis auf und du bist bereit zu gehen!

Dies ist das Ergebnis von objectivec2swift.com:

self.navigationItem.leftBarButtonItems.enumerateObjectsUsingBlock({(item: UIBarButtonItem, i: Int, stop: Bool) -> Void in 
    item.customView.alpha = alpha 
}) 
self.navigationItem.rightBarButtonItems.enumerateObjectsUsingBlock({(item: UIBarButtonItem, i: Int, stop: Bool) -> Void in 
    item.customView.alpha = alpha 
}) 

Aber das ist nicht der swifty Code. Lass es aufräumen:

self.navigationItem.leftBarButtonItems?.forEach { 
    $0.customView?.alpha = alpha 
} 
self.navigationItem.rightBarButtonItems?.forEach { 
    $0.customView?.alpha = alpha 
} 

Schau dir das an! So schnell!

+1

Wenn ich mich nicht irre, kompiliert das (und der Code aus den vorherigen Antworten) nicht. –

+0

Ja, ich habe den Code nicht beim ersten Mal getestet. @MartinR – Sweeper

Verwandte Themen