Swift - Extension: Unterschied zwischen den Versionen
Aus Wikizone
| Zeile 7: | Zeile 7: | ||
Vorhandene Funktionen von Typen können erweitert werden, '''solange die Übergebenen Parameter sich von anderen Aufrufen unterscheiden.''' | Vorhandene Funktionen von Typen können erweitert werden, '''solange die Übergebenen Parameter sich von anderen Aufrufen unterscheiden.''' | ||
| + | Beispiel: Double erweitern | ||
<syntaxhighlight lang="swift"> | <syntaxhighlight lang="swift"> | ||
/** | /** | ||
| Zeile 38: | Zeile 39: | ||
print(doubleTwo.round(to: 3)) | print(doubleTwo.round(to: 3)) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
| + | Beispiel UIButton erweitern | ||
| + | <syntaxhighlight lang="swift"> | ||
| + | import UIKit | ||
| + | |||
| + | extension UIButton{ | ||
| + | func makeCircular(){ | ||
| + | self.clipsToBounds = true | ||
| + | self.layer.cornerRadius = CGFloat(self.frame.height / 2) | ||
| + | } | ||
| + | } | ||
| + | |||
| + | let button = UIButton(frame: CGRect(x:0, y:0, width:50, height:50)) | ||
| + | button.backgroundColor = .red | ||
| + | // Instead of ... | ||
| + | // button.layer.cornerRadius = 25 | ||
| + | // button.clipsToBounds = true | ||
| + | // we can now: | ||
| + | |||
| + | button.makeCircular() | ||
Version vom 20. Januar 2023, 13:04 Uhr
Links
Swift (Programmiersprache)
Einleitung
Extensions erweitern Funktionalitäten von Typen.
Vorhandene Funktionen von Typen können erweitert werden, solange die Übergebenen Parameter sich von anderen Aufrufen unterscheiden.
Beispiel: Double erweitern
/**
Extensions can extend the functionality of all types. Even the basic types.
In this example we extend the Double Type
*/
import UIKit
var doubleOne = 3.1415926
var doubleTwo = doubleOne
doubleOne.round()
// round rounds to whole number
print(doubleOne)
// but if we want sth. like round(to: 3)
// to round to three decimals?
// We can extend the native Double datatype
extension Double{
func round(to places:Int)->Double{
let multiplier = pow(10.0, Double(places) )
var n = self
n = n * multiplier
n.round()
n = n / multiplier
return n
}
}
// and now we have extended the Double.round() function
print(doubleTwo.round(to: 3))
Beispiel UIButton erweitern <syntaxhighlight lang="swift"> import UIKit
extension UIButton{
func makeCircular(){
self.clipsToBounds = true
self.layer.cornerRadius = CGFloat(self.frame.height / 2)
}
}
let button = UIButton(frame: CGRect(x:0, y:0, width:50, height:50)) button.backgroundColor = .red // Instead of ... // button.layer.cornerRadius = 25 // button.clipsToBounds = true // we can now:
button.makeCircular()