スライドしてアンロック風ボタンを作ってみた。

f:id:growthfield:20121123101150j:plain

iOSのUI回りの勉強のためカスタムUIControlを書いてみました。NNGradientControls
iPhoneのロック画面に出てくるアレです。特許になっちゃってるみたいですが。
アップル訴訟「スライド式ロック解除」とは?

まあ特許やらロック解除やらは置いておいてこの手のスライド式ボタンはちょっとした誤タッチで動作してしいまう通常のボタンに比べてユーザのより明確な意志の元に動作するので重宝する気がします。
確認画面を挟むまでも無いけどある程度誤動作を抑制したいようなケースとか。
でも審査は通らないんだろうな〜。

NNGradientSlideButton

NNGradientSlideButtonはUIControlから派生しており、ボタンが一番右まで移動されるとUIControlEventValueChangedイベントを発火します。

Storyboardから利用される事を想定していて、素のViewコンポーネントを配置しコンポーネントのCustom ClassにNNGradientSlideButtonを指定する事で利用できるようになります。
ボタンの色はViewコンポーネントの背景色が使用されます。

また以下のプロパティが指定可能になっています。

プロパティ 説明
leftPadding スライド表示領域左端側の空白領域サイズを指定します。
rightPadding スライド表示領域右端側の空白領域サイズを指定します。
font グラデーションするテキストのフォントを指定します。
text グラデーションするテキストの文字列を指定します。
textColor グラデーションするテキストの色を指定します。

font以外はStoryboardのUser defined runtime attributesから指定可能ですが、
fontはUser defined runtime attributesで利用可能な型ではないのでコード上から指定する必要がありますが、欧文フォントしか利用できないという制限があります。