先日、CocoaPodsに登録したMZRSlideInMenuがCocoa Controlsに掲載されました!Cocoa Controls初体験です。
用途
- ちょっと変わったタブ遷移をしたいとき
- 開発中に複数タブ画面の遷移アニメーションが決まってない時の仮のコントロールとして
利用方法
GithubのREADMEに記載していますが、簡単に説明すると、
MZRSlideInMenu *menu = [[MZRSlideInMenu alloc] init]; [menu setDelegate:self]; [menu addMenuItemWithTitle:@"buttonTitle1"]; [menu addMenuItemWithTitle:@"buttonTitle1"]; [menu addMenuItemWithTitle:@"buttonTitle2"]; [menu addMenuItemWithTitle:@"buttonTitle3"]; [menu addMenuItemWithTitle:@"buttonTitle4"]; [menu showMenuFromLeft];
こんな感じでボタンを作成して、
- (void)slideInMenu:(MZRSlideInMenu *)menuView didSelectAtIndex:(NSUInteger)index { NSString *buttonTitle = [menuView buttonTitleAtIndex:index]; NSLog(@"%@(%ld) tapped",buttonTitle, (long)index); [menuView closeMenu]; }
こんな感じで、ボタンがタップされた時の処理を書きます。ボタンの追加には、
- (void)addMenuItemWithTitle:(NSString *)title textColor:(UIColor *)textColor backgroundColor:(UIColor *)backgroundColor;
というメソッドもあって、簡単に見た目を変更できるようになっています。
その他、ボタンの色や、文字の大きさなどのカスタマイズはプロパティに値をセットすることで少しできるようになっています。
インストール
CocoaPodsでpod 'MZRSlideInMenu', '~> 0.0.1'
して1発ですが、MZRSlideInMenu.h/.mをプロジェクトに追加するだけでも簡単に利用できます。
公開しようと思ったきっかけ
CocoaPodsでのPull Requestを試してみたいと思ったのが最初でした。CocoaPods本当に便利なので、自分ももっとその文化にコミットしたいという気持ちです。
そのために、なにかネタはないかなと探したところ、最近開発中のアプリの副産物としてMZRSlideInMenuの元とのなるものが分離された状態で出来上がっていたので、それをベースに作りました。これは、カスタムメニューのプロトタイプとして作っていたものでした。多分、この部分は1.5時間くらいでやったものだと思います。
自分用に作っていたので、表示変更用のプロパティやコメントなどが一切なかったので、それを追加してコードをちょっとだけ整理してREADMEを書いて、Githubに公開するところまでが大体4時間位だったと思います。README用の画像を用意するなど地味に面倒です。。
CocoaPodsにPull Requestをするのが初めてだったので色々ハマリはありましたが、podspecを書いて公開してCocoaPodsになんとか申請しました。基本的なところではまってて、なかなか成功せず、3時間位かかりましたが、次回からはここは1時間以内で行けそうです。先人のブログ記事が本当に参考になりました。
Cocoa Controlsへの申請はちょっとメッセージを書いてsubmitボタンを押せばよいだけなので簡単です。
後記
Cocoa Controlsで公開されて、OSS作者になれたという感じです。ただし、スピード重視でやった結果今のままだと星が低くなってしまいそうなので、時間見つけてブラッシュアップしていきたいです。まぁ、でもこれが自分の実力なんだなと思います。公開したことでもまれて、少しでもよいコードが書けるようになったら良いと思います。Pull Requestとか来たら楽しいなぁ。現時点でGithubの星は8つ。これも増えていくのが楽しみです!