UZTextView, UZMultilayeredPopoverControllerの解説
-
Upload
yuichi-yoshida -
Category
Technology
-
view
442 -
download
3
description
Transcript of UZTextView, UZMultilayeredPopoverControllerの解説
![Page 1: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/1.jpg)
UZTextView, UZMultilayeredPopoverControllerの解説
デンソーアイティーラボラトリ @sonson_twit 吉田悠一
![Page 2: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/2.jpg)
本業
![Page 3: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/3.jpg)
自己紹介
![Page 4: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/4.jpg)
実は2tch v6.1が出ました
• 2tch, since 2007/12/4
• 6年半弱,経ちました
• フルスクラッチの書き直しは4回
• 色々ありましたが,細々とやっています
![Page 5: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/5.jpg)
デモ
![Page 6: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/6.jpg)
今日のお話
• UZTextView class
• UZMultipleLayeredPopoverController class
• doxygenスタイルのススメ
![Page 8: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/8.jpg)
UZTextView
• CoreTextベース
• 選択,リンク,色,フォント・・・など対応
• 実はkishikawakatsumi/SECoreTextViewがある
• マネして作った
• サブセットを作りたくて着手
![Page 9: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/9.jpg)
デモ
![Page 10: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/10.jpg)
CoreTextに挑戦しる!
UIKit(UILabel, UITextViewなど)
NSStringDrawing(deprecated)
NSAttributedStringDrawing
TextKit
CoreTextLow level?
![Page 11: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/11.jpg)
CoreTextに挑戦しる!
UIKit(UILabel, UITextViewなど)
NSStringDrawing(deprecated)
NSAttributedStringDrawing
TextKit
CoreText
簡単! だけど最後の自由度が低い
Low level?
![Page 12: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/12.jpg)
CoreTextに挑戦しる!
UIKit(UILabel, UITextViewなど)
NSStringDrawing(deprecated)
NSAttributedStringDrawing
TextKit
CoreText
レンダリングはQuartz
Low level?
![Page 13: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/13.jpg)
CoreTextのいいところ
• 速い
• クリッカブルにできる
• レイアウトしなくていい
![Page 14: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/14.jpg)
CoreTextのダメなところ
• drawRect
• Quartzがわからないと使えない(座標反転とか
• CFベースのコードになる
![Page 15: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/15.jpg)
TextKitがおすすめ
• CoreTextを使った理由はTextKitが遅い
• ほぼ,すべて一通りのことはTextKitできる
• レイアウト等の処理も可能
• まずはここから手を出してみるとか
![Page 17: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/17.jpg)
UZMultipleLayeredPopoverController
• UIPopoverControllerがクソ
![Page 18: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/18.jpg)
なぜクソなのか
• 重ねるとリジェクトされる
• 表示速度が遅い
• インスタンス管理が面倒くさい
!
• 坊主憎けりゃ袈裟まで憎い
![Page 19: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/19.jpg)
デモ
![Page 20: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/20.jpg)
使い方
こんだけ.modalのように使えることを目指しました.
![Page 21: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/21.jpg)
デザイン
• window.rootViewControllerをほじくって,そこに表示するようにしている
• この設計からはみ出るとダメです
• iPhoneでも使えます
![Page 23: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/23.jpg)
コメントを書け!!!!
• doxygenスタイルで書くといいことがあります
• 知ってますか
![Page 24: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/24.jpg)
doxygenスタイル
2tchより抜粋
![Page 25: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/25.jpg)
alt + クリックで
![Page 26: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/26.jpg)
さらにいいことが
• appledocというツールがあります
• http://gentlebytes.com/appledoc/
• appledocに食わせると・・・
![Page 27: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/27.jpg)
かっこいいドキュメントが
![Page 28: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/28.jpg)
sonsongithub
![Page 30: UZTextView, UZMultilayeredPopoverControllerの解説](https://reader034.fdocument.pub/reader034/viewer/2022042607/559458f91a28ab732f8b4829/html5/thumbnails/30.jpg)
backup slide
backup