29
30

More than 5 years have passed since last update.

[iOS]お手軽にノベルゲーム風UIを作成できるライブラリSRGNovelGameTextsの紹介

Last updated at Posted at 2015-01-20

SRGNovelGameTexts

以下のようなノベルゲーム風のUIをiOSでお手軽に実現できるライブラリを作ってみました。RPGでよくあるっぽい感じでテキストを出力したいときとか、ノベルゲーム的なアプリを作りたい場合に使うと役立つかもしれません。

インストール

CocoaPodsを利用してる場合は下記でインストールできます。

Podfile
pod 'SRGNovelGameTexts', '~> 0.0.2'

Podsを経由せず直接使いたい場合は、主導で以下のリポジトリのClassesディレクトリのファイルをプロジェクトに配置すれば動作するはずです。
https://github.com/kazu0620/SRGNovelGameTexts

簡単な実装例

以下、シンプルな実装例。なお折り返し改行は、Viewの幅に応じて自動的に行われますので適宜調整くださいませ。

ViewController.m(Objective-Cの場合)
// テキスト出力用の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.himportだけしておけば利用できます。
上のObjective-Cの例をSwiftに置き換えると以下のようになります。

ViewController.m(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 文字が表示されるときのフェード演出の長さ

終了後のコールバック

ViewController.m
novelGameText.onAllTextDisplayed = ^{
    // 次のテキストを表示する、画面を遷移させるなどの処理
};

その他の公開メソッド

ViewController.m
[novelGameText displayAllText];

演出中でも全ての文字を強制的に出すメソッドです。
タップのイベント取って早送り的な感じで使うと良いです。

ViewController.m
[novelGameText cleanup];

出力してる文字を一度全て消すメソッドです。cleanupしたあとに再度テキストをSetしてstartDisplayingTextすることで次のテキストを再び表示することが出来ます。前述のコールバックと一緒に使うことで、複数のテキストの順番に表示する、なども実現出来ます。


以上、ライブラリのご紹介でした!良きUI作成ライフを!

29
30
1

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
29
30