Help us understand the problem. What is going on with this article?

TRZSlideLicenseViewController の使い方 (CocoaPods管理下のライブラリーのライセンス情報表示用UIライブラリー)

More than 5 years have passed since last update.

TRZSlideLicenseViewController とは

TRZSlideLicenseViewController は、 iOS アプリで使用する 3rd パーティーライブラリーのライセンス情報をいい感じに表示してくれる UI ライブラリーです。ライブラリー管理ツール CocoaPods の使用が前提です。作った背景などはブログの方に書いています。

特徴

  • 横スクロールでページ切り替え
  • 強くフリックすると、ページングが解除されて慣性スクロール
  • 減速してスクロールが止まると、画面中央に自動的に戻り、ページングが有効に
  • リンクを検出、Safariで開きます
  • Podsフォルダ内の Pods-acknowledgements.plist を利用して、ライセンス情報を取り込み

前提条件

  • CocoaPods を使用
  • iOS 7.0 以降
  • ナビゲーションコントローラーの子ビューコントローラーとして使用
  • 縦向き(ポートレート)のみをサポート

インストール

Podifileに以下を追記。

pod 'TRZSlideLicenseViewController'

そのあと pod install (ッターン!)

使い方

事前準備

Pods フォルダ内の Pods-acknowledgements.plist をプロジェクト内にインポートしておきます。

Pods-acknowledgements.plist は CocoaPods を利用していれば、Pods フォルダ内に自動生成されています。CocoaPodsで利用しているライブラリーのライセンス情報がすべて格納されていますので、これをロードして利用しています。

ストーリーボードからビューをロードする場合

  1. ストーリーボード上に新しいビューコントローラーを配置します。
  2. 配置したビューコントローラーを選択し、identity inspector のカスタムクラスフィールドに TRZSlideLicenseViewController と入力します。
  3. 遷移元ビューコントローラーと TRZSlideLicenseViewController をプッシュセグエで接続します。
  4. セグエを選択し、 attributes inspector の segue identifier に任意の文字列を入力します。(ここでは segueIdentifier と入力)
  5. 遷移元ビューコントローラーのクラスファイルで、以下の通り prepareForSegue を実装します。
#import "TRZSlideLicenseViewController.h"

...

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"segueIdentifier"]) {
        TRZSlideLicenseViewController *controller = segue.destinationViewController;
        controller.podsPlistName = @"Pods-acknowledgements.plist";
        controller.navigationItem.title = @"Sample Licenses";
    }
}

コードからビューを生成する場合

以下の通り生成して、ナビゲーションコントローラーにプッシュするだけです。

#import "TRZSlideLicenseViewController.h"

...

TRZSlideLicenseViewController *controller = [[TRZSlideLicenseViewController alloc] init];
controller.podsPlistName = @"Pods-acknowledgements.plist";
controller.navigationItem.title = @"Sample Licenses";
[self.navigationController pushViewController:controller animated:YES];

その他のオプション

ヘッダーページ、フッターページのカスタマイズ

先頭のページと最後のページに表示する文字列をカスタマイズできます。

TRZSlideLicenseViewController のプロパティの headerTypefooterType に以下の値をセットします。

TRZSlideLicenseViewHeaderType

Value Description
TRZSlideLicenseViewHeaderTypeDefault デフォルト値です。ヘッダーページには CocoaPods により生成されたタイトルとテキストが表示されます。具体的には "Acknowledgements" と "This application makes use of the following third party libraries:" になります。
TRZSlideLicenseViewHeaderTypeNone ヘッダーページは表示せず、最初からライセンス情報を表示します。
TRZSlideLicenseViewHeaderTypeCustom ヘッダーページに任意の文字列を表示します。文字列はコントローラーの headerTitle, headerText プロパティにセットしてください。

TRZSlideLicenseViewFooterType

Value Description
TRZSlideLicenseViewFooterTypeDefault デフォルト値です。フッターページにはCocoaPodsにより生成されたテキストが表示されます。具体的には "Generated by CocoaPods - http://cocoapods.org" になります。
TRZSlideLicenseViewFooterTypeNone フッターページは表示しません。
TRZSlideLicenseViewFooterTypeCustom ヘッダーページに任意の文字列を表示します。文字列はコントローラーの footerTitle, footerText プロパティにセットしてください。

テキストの色変更

TRZSlideLicenseViewControllertitleColor もしくは textColor プロパティに任意の UIColor をセットしてください。

カスタマイズ例

...

TRZSlideLicenseViewController *controller = [[TRZSlideLicenseViewController alloc] init];
controller.podsPlistName = @"Pods-TESTTRZSlideView-acknowledgements.plist";
controller.navigationItem.title = @"Sample Licenses";

// ヘッダーページの文字列をカスタマイズ
controller.headerType = TRZSlideLicenseViewHeaderTypeCustom;
controller.headerTitle = @"Libraries We Use";
controller.headerText = @"This application makes use of the third party libraries on the following page (➟).\n\nWe thank the open source community for all of their contributions.";

// フッターページを削除
controller.footerType = TRZSlideLicenseViewFooterTypeNone;

// 背景の色、文字の色をカスタマイズ
controller.view.backgroundColor = [UIColor darkGrayColor];
controller.view.tintColor = [UIColor colorWithRed:0.9 green:0.4 blue:0.4 alpha:1.0];
controller.titleColor = [UIColor whiteColor];
controller.textColor = [UIColor lightGrayColor];

[self.navigationController pushViewController:controller animated:YES];

ライセンス

MIT License

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした