0

UITextField の拡張機能を作成しました。そして、UITextView にも同じ拡張機能が必要です。この拡張機能を他のすべてのビューで使用できるようにするにはどうすればよいですか?

私の延長コード:

extension UITextField {

    func addTopBorderWithColor(color: UIColor, height: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.CGColor
        border.frame = CGRectMake(0, 0, self.frame.size.width, height)
        self.layer.addSublayer(border)
    }

    func addRightBorderWithColor(color: UIColor, height: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.CGColor
        border.frame = CGRectMake(self.frame.size.width - height, 0, height, self.frame.size.height)
        self.layer.addSublayer(border)
    }

    func addBottomBorderWithColor(color: UIColor, height: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.CGColor
        border.frame = CGRectMake(0, self.frame.size.height - height, self.frame.size.width, height)
        self.layer.addSublayer(border)
    }

    func addLeftBorderWithColor(color: UIColor, height: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.CGColor
        border.frame = CGRectMake(0, 0, height, self.frame.size.height)
        self.layer.addSublayer(border)
    }
}
4

2 に答える 2

1

少数のクラスのみの拡張が必要な​​場合は、プロトコルを定義し、プロトコルでデフォルトの実装を提供してから、新しいプロトコルでクラスを拡張できます。プレイグラウンドで実行できる簡単な例を次に示します。

protocol foo {
    func bar() -> String;
}

extension foo {
    func bar() -> String {
        return "bar"
    }
}

extension Float: foo {}
extension Int: foo {}


let i = 12
print(i.bar())

let f:Float = 1.0
print (f.bar())
于 2015-12-04T17:27:27.393 に答える