角丸で枠に色がついたボタンが好きです。
AppStoreの「入手」みたいなやつ。
今まで、StoryboardでUIButtonをおいてからコードでlayerを設定してあげれば作れるけど、なんかもう少しStoryboardでなんとかなんないのかと思っていたら、"User Defined Runtime Attributes"という設定でできることを知りました。
これで実行
ぐは。。
そうか、layer.borderColorはCGColorか。。
無理かーと思っていたらナイスな方法が見つかりました。
CALayerのExtension(カテゴリ)でUIColorを引数にもつメソッドを作成してKeyPathに設定します。
CALayer+RuntimeAttribute.swift
import UIKit
extension CALayer {
func setBorderIBColor(color: UIColor!) -> Void{
self.borderColor = color.CGColor
}
}
SwiftでExtensionのファイル名をどうしようかと思いましたが、とりあえずObjective-Cと同じく、クラス名+拡張名でいこうかと思います。
で、このメソッドをKyePathに指定して実行
よしできた。
追記
UIControlState.Highlightedの設定をしなければいけないので、結局コードで書くことにしました。