LoginSignup
52
47

More than 5 years have passed since last update.

iOS Storyboardで枠色つき角丸ボタン

Last updated at Posted at 2015-01-21

角丸で枠に色がついたボタンが好きです。
AppStoreの「入手」みたいなやつ。

今まで、StoryboardでUIButtonをおいてからコードでlayerを設定してあげれば作れるけど、なんかもう少しStoryboardでなんとかなんないのかと思っていたら、"User Defined Runtime Attributes"という設定でできることを知りました。

スクリーンショット 2015-01-21 23.58.50.png

これで実行

スクリーンショット 2015-01-22 0.06.14.png

ぐは。。
そうか、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に指定して実行

スクリーンショット 2015-01-21 23.58.50.png

スクリーンショット 2015-01-22 0.13.13.png

よしできた。

追記

UIControlState.Highlightedの設定をしなければいけないので、結局コードで書くことにしました。

52
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
47