Objective-C
iOS
Swift

UIViewを指でリサイズしたい人のためにライブラリ作った

More than 1 year has passed since last update.

UIViewを指でリサイズできるいい感じのライブラリが調べても見つからなかったので作りました。

OTResizableViewDemo.gif

とりあえずgithub

OTResizableView

機能

・Swift4・Xcode9対応
・Objective-Cからも使える
・UIViewのリサイズ・移動
・枠線、グリップポイントの色変更
・superviewからはみ出さない制御
・アスペクト維持リサイズ

導入

CocoaPodsとCarthageで導入できます。

CocoaPods

pod 'OTResizableView'

Carthage

github "PKPK-Carnage/OTResizableView"

使い方

Swift
let resizableView = OTResizableView(contentView: yourView)
resizableView.delegate = self

//色の変更はここでできます。

view.addSubview(resizableView)

//リサイズ許可はaddSubView後のみ可能です。
resizableView.resizeEnabled = true
Objective-C
OTResizableView *resizableView = [[OTResizableView alloc] initWithContentView:yourView];
resizableView.delegate = self;

//色の変更はここでできます。

view.addSubview(resizableView)

//リサイズ許可はaddSubView後のみ可能です。
resizableView.resizeEnabled = YES;

OTResizableDelegate

デリゲートは以下の4つのメソッドがあります。

Swift
@objc public protocol OTResizableViewDelegate: class {

    @objc optional func tapBegin(_ resizableView:OTResizableView)

    @objc optional func tapChanged(_ resizableView:OTResizableView)

    @objc optional func tapMoved(_ resizableView:OTResizableView)

    @objc optional func tapEnd(_ resizableView:OTResizableView)

}

tapBegin

OTResizableViewをタップした際に実行されます。
このタイミングで resizeEnabled プロパティを切り替えたりするといいんじゃないかと思います。

tapChanged

OTResizableViewがリサイズしている時に実行されます。

tapMoved

OTResizableViewが移動している時に実行されます。

tapEnd

OTResizableViewがリサイズ、移動を終了した時に実行されます。

まとめ

よかったら使ってみてね。