問題タブ [textkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - NSTextStorage の代替バッキング ストア
すべての例は、テキストの表示/編集に関連するテキストと属性を保持するための「バッキング ストア」として NSMutableAttributedString を示しています。std::string やデータベースのコンテンツなどの代替を使用するにはどうすればよいですか。テストとして、サブクラスを作成し、必要なメソッドをオーバーライドしたときにデフォルト値を返すようにハードコーディングしました。ただし、iPhone 5 デバイスで実行すると、ホーム ボタンを押すまで黒い画面が表示されます。システムは、attributesAtIndex:location:effectiveRange: range: を継続的に呼び出し、CPU 使用率レベルが 100% まで上昇し、アプリは何もしません。string: メソッドを 1 回呼び出しますが、attributesAtIndex:location:effectiveRange:range を呼び出し続けます。
例:
そして、これがどのようにセットアップされているかです:
NSTextStorage はクラス クラスターであると理解しています。これは、抽象クラス ファクトリであることを意味しているようです。別の「バッキング ストア」を使用できない理由がよくわかりません。私の計画は、std::string を使用し (データの取得元の理由により)、一定の属性スタイルを返すことでした (上記のコードのように)。Mac OS X ドキュメントを含め、NSTextStorage、NSLayoutManager、NSTextContainer、および NSTextView についてできる限りのことを読んできました (iOS でこれを行っていますが)。ありがとう!
ios - テキストに下線を引く - フォント サイズが異なる交差範囲の線の太さ
の textStorage の属性を使用していますUITextView
。クラスのオブジェクトの文字列と配列がありますTextFormattingElement
。このクラスのインスタンスは、NSRange
(この要素をテキストに適用する必要がある) といくつかの書式設定パラメーターで構成されます。
次に、この配列をループして、この要素を textView の textStorage に連続して適用します。私はこの方法を使用します:
問題が 1 つあります。TextFormattingElement
範囲が交差する 2 つのインスタンスがある場合 (例:NSMakeRange(9,28)
とNSMakeRange(26,7)
)、下線の太さは常に最後の要素のフォント サイズに依存する値になります。この図は、このスクリーンショットで見ることができます:
私の2つのフォーマット要素のパラメータは次のとおりです。
1 つ目: 位置 = 9、長さ = 28、fontName = TimesNewRomanPSMT、fontSize = 15、fontColor = UIDeviceRGBColorSpace 1 0 0 1、isBold = 0、isItalic = 0、isUnderlined = 1、isStriked = 0
2番目: 位置 = 26、長さ = 7、fontName = TimesNewRomanPSMT、fontSize = 25、fontColor = UIDeviceRGBColorSpace 0 0 1 1、isBold = 1、isItalic = 0、isUnderlined = 1、isStriked = 0
しかし、Google ドキュメントのような効果を得たい:
TextKit を使用してこれを行うにはどうすればよいですか?
ios - NSAttributedString: 属性とインデントが異なる行を表示する方法
文字列「5 + ボーナス ボール」を次のように分割する方法:
この属性付き文字列をラベルに割り当てます。
ios - ファイルからの複数の段落スタイルを持つ iOS7 UITextView
Dynamic Type をサポートするいくつかの見出しとテキストの段落をレイアウトしたいアプリのアプリ内ガイドに取り組んでいます。
単一の UITextView を使用する最も簡単な方法は何ですか? (テキストは別のテキスト ファイルからロードすることをお勧めします)。
これには多くのアプローチがあります。
- UIWebViews (オーバーキル??)
- UITextView と NSAttributedString?
- テキスト キット - この単純なタスクに対して、どちらが面倒に思えますか?
ios - UITextView のテキストを太字にしてクリックできないように設定する方法
に次の HTML があり、UITextView
それを にレンダリングしたいUITextView
ノートのための私の体です
追加させてください: 現在、青色で下線が引かれ、クリックできません。太字にしてクリックできないようにしたいと思います。私はこれに関するドキュメントを読みましたlinkTextAttributes
が、これを使用していないため、少し理解できず、これを操作する簡単な方法がわかりません。上記のリンクを太字で黒(青ではなく)にして、クリックできない性質を維持するにはどうすればよいですか?
objective-c - TextKit を使用して文字間に固定距離を設定するにはどうすればよいですか
私TextKit
は長いテキストを描くために使用します。段落配置はNSTextAlignmentJustified
、hyphenationFactor
オンです。
通常は問題なく機能しますが、次のような行が表示されることがあります"L o n g t e x t"
。のような線を引く方法はあり"Long____text"
ますか? つまり、柔軟なスペースで文字間に一定の距離を設定しますか?
前もって感謝します。
ios - UILabel でテキストを円に合わせる方法
UILabel
テキストを(四角形ではなく)円に流し込みたいと思います。でいくつかの実験をNSLayoutManager
行いNSTextContainer
ましNSTextStorage
たが、うまくいかないようです。以下の例では、テキストを 40x40 (ラベルは 120x120) の小さな四角形に流し込むことになっていますが、何の効果もないようです。
イデス?
objective-c - TextKit を使用したページスクロールビューに虫眼鏡と編集メニューが表示されない
TextKit を使用して、ページ化された UIScrollView を作成し、その内容をテキストで埋めます。すべてのページングは完全に機能します。私が困惑したのは、すべてのテキストが 1 ページに収まると、すべてが期待どおりに機能するということです。ただし、テキストが長く、スクロールビューで複数のページを作成する必要がある場合、テキストは強調表示/選択できなくなります。
簡単な例を次に示します (これを新しいプロジェクトに挿入しviewDidLoad
て複製するだけです)。すべてのテキストが 1 ページに収まるように、テキスト ビューのフォント サイズを小さいサイズ (12pt) に変更すると、期待どおりの動作が得られます。逆に、大きいサイズ (22pt) では、スクロールビュー用に複数のページが作成され、テキストの扱いにくさが失われます。
私の質問は、テキストに複数のページが必要な場合でも、虫眼鏡と編集メニューの機能を元に戻すにはどうすればよいですか?
助けてくれてありがとう!