CocoaPodsで入れたライブラリのライセンス表記画面を作りたい
端末の設定画面に謝辞を入れる方法
よくこちらの方法で、謝辞を入れることが多かったのですが...
[iOS] アプリの設定画面にバージョン表記と謝辞を自動で設定する / Developer.IO
アプリの中でも表示させたい
TableView&自作レイアウトのセルで、どうにか表示できないかとトライしてみた。
イメージはこんな感じ
表示用のデータを取得する
Setting.bundle
の中にAcknowledgements.plist
がある前提。
(Pods/Targets Support Files/{PROJECT_NAME}/Acknowledgements.plist
を直接見に行けるかどうかは試してない)
var items: [Any] = []
if let path = Bundle.url(forResource: "Acknowledgements",
withExtension: "plist",
subdirectory: nil,
in: Bundle.main.url(forResource: "Settings", withExtension: "bundle")!) {
let dic = NSDictionary(contentsOf: path)!
self.items = dic["PreferenceSpecifiers"] as! [Any]
// 最初と最後以外が必要な情報
self.items.removeFirst()
self.items.removeLast()
}
セルをカスタマイズ
セルの高さを可変にする
これだけで可変にできるようになったのはありがたい。
self.tableView.estimatedRowHeight = 100
self.tableView.rowHeight = UITableViewAutomaticDimension
表示させる部分
ライブラリを作る際に自動生成されるLICENSEファイルには、最後に改行が付いている。
(最後に改行コードが2つ付いているライブラリは、おそらくそのまま使用しているのだろう)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "licenseCell", for: indexPath) as! LicenseCell
let item = self.items[indexPath.row] as! NSDictionary
cell.titleLabel.text = item["Title"] as? String
cell.licenseLabel.text = item["License"] as? String
// 最後に付いてる改行を取り除きたかった
cell.footertextLabel.text = (item["FooterText"] as! String).trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
return cell
}
最後に...
plistファイルからのデータ取得ができることを知ったのは、個人的に大きい。
Author And Source
この問題について(CocoaPodsで入れたライブラリのライセンス表記画面を作りたい), 我々は、より多くの情報をここで見つけました https://qiita.com/Todate/items/1121e60673c2ecd3a51b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .