##SRGNovelGameTexts
以下のようなノベルゲーム風のUIをiOSでお手軽に実現できるライブラリを作ってみました。RPGでよくあるっぽい感じでテキストを出力したいときとか、ノベルゲーム的なアプリを作りたい場合に使うと役立つかもしれません。
##インストール
CocoaPodsを利用してる場合は下記でインストールできます。
pod 'SRGNovelGameTexts', '~> 0.0.2'
Podsを経由せず直接使いたい場合は、主導で以下のリポジトリのClassesディレクトリのファイルをプロジェクトに配置すれば動作するはずです。
https://github.com/kazu0620/SRGNovelGameTexts
##簡単な実装例
以下、シンプルな実装例。なお折り返し改行は、Viewの幅に応じて自動的に行われますので適宜調整くださいませ。
// テキスト出力用のViewを初期化
SRGNovelGameTexts *novelGameText = [SRGNovelGameTexts new];
novelGameText.frame = CGRectMake(0,0,100,100);
novelGameText.textColor = [UIColor blackColor];
[self.view addSubview:novelGameText];
// 出力したいテキストをセット
[novelGameText setDisplayText:@"Hello Novel Texts View"];
// 演出を再生開始
[novelGameText startDisplayingText];
もちろんSwiftから利用することもできます。Swiftから利用する場合は、Bridging-Header.h
からSRGNovelGameTexts.h
をimport
だけしておけば利用できます。
上のObjective-Cの例をSwiftに置き換えると以下のようになります。
/* Swiftバージョン */
// テキスト出力用のViewを初期化
let novelGameText = SRGNovelGameTexts()
novelGameText.frame = CGRectMake(0,0,100,100);
novelGameText.textColor = UIColor.blackColor()
self.view.addSubview(novelGameText)
// 出力したいテキストをセット
novelGameText.setDisplayText("Hello Novel Texts View")
// 演出を再生開始
novelGameText.startDisplayingText()
##変更できる値
startDisplayingTextを実行前にSRGNovelGameTextsの下記プロパティを変更することにより、各種調整を行うことが出来ます。
プロパティ名 | 設定できる項目 |
---|---|
textColor | 出力される文字の色 |
font | 出力される文字のフォント |
letterSpacing | 文字間のスペースの大さ |
lineSpacing | 行間のスペースの大きさ |
stringDisplaySpeed | 文字表示後に次の文字が表示しはじめるまでの長さ |
stringFadeInSpeed | 文字が表示されるときのフェード演出の長さ |
##終了後のコールバック
novelGameText.onAllTextDisplayed = ^{
// 次のテキストを表示する、画面を遷移させるなどの処理
};
##その他の公開メソッド
[novelGameText displayAllText];
演出中でも全ての文字を強制的に出すメソッドです。
タップのイベント取って早送り的な感じで使うと良いです。
[novelGameText cleanup];
出力してる文字を一度全て消すメソッドです。cleanupしたあとに再度テキストをSetしてstartDisplayingTextすることで次のテキストを再び表示することが出来ます。前述のコールバックと一緒に使うことで、複数のテキストの順番に表示する、なども実現出来ます。
以上、ライブラリのご紹介でした!良きUI作成ライフを!