LoginSignup
10
9

More than 5 years have passed since last update.

【Swift】UIViewの各辺を指定してborderをつけるExtension

Last updated at Posted at 2015-12-08

概要

CSSでいう、border-left, border-rightみたいなやつ。

使い方

以下のファイルをプロジェクト内にコピーします。

以上で下記borderメソッドが追加されます。

使用例

ViewController.swift

// ビューを生成
let someView = UIView(frame: CGRectMake(0, 0, 200, 100))

// TopとRightに線をつける
someView.border([.Top, .Right], borderWidth: 3.5, borderColor: borderColor)

Simulator_Screen_Shot_2015_12_08_23_47_55.png

メソッド

func border(positions: [BorderPosition], borderWidth: CGFloat, borderColor: UIColor?)

引数

- positions

.Top, .Left, .Right, .Bottomから選択して配列にしたもの

- borderWidth

borderの幅。

- borderColor

borderの色。オプショナル。

特記事項

autolayoutに対応しています。

また、その影響から、サイズが変わるたびにUIViewのlayerにaddSublayerしたレイヤーを一度全て削除しています。
※この辺うまいやり方ないでしょうかね。。

その他

  • もちろん、UIViewを継承しているUIlabel他ビューパーツでも使えます。
  • もっといいやり方あったら教えてくださいm(__)m

コード

UIViewに限らず、よく使いそうな機能をExtensionとしてまとめていっています。
以下、Github上にコードを上げています。随時増やしていく予定です。

追記 2015/12/24

この投稿に書いたExtensionを含め、UIKitを拡張したExtensionをまとめてCocoaPodsのライブラリ化しました。

ライブラリはこちら

また、CocoaPodsへのライブラリ登録の方法をこちらに投稿しました。
参考になれば幸いです。

10
9
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
10
9