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 파일에서 데이터를 얻을 수 있다는 것을 알게 된 것은 개인적으로 크다.
Reference
이 문제에 관하여(CocoaPods로 넣은 라이브러리의 라이센스 표기 화면을 만들고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Todate/items/1121e60673c2ecd3a51b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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 파일에서 데이터를 얻을 수 있다는 것을 알게 된 것은 개인적으로 크다.
Reference
이 문제에 관하여(CocoaPods로 넣은 라이브러리의 라이센스 표기 화면을 만들고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Todate/items/1121e60673c2ecd3a51b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(CocoaPods로 넣은 라이브러리의 라이센스 표기 화면을 만들고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Todate/items/1121e60673c2ecd3a51b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)