問題タブ [nstextcontainer]
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 - UITableViewCell内のUITextViewにカスタムベジエパスを適用する方法
私はUITableViewCellで作業しています。セルには、多数の画像、ラベル、および UITextView が含まれています。他のビューを除外パスとして描画する UITextView が必要です。したがって、クラス MyUITableViewCell 内には、メソッド内に次のコードがありますawakeFromNib
。
この編集のどれも有効になっていないようです。
BWT: UITableView 内のストーリーボードで TableViewCell を宣言しました。次に、ストーリーボード セルを MyUITableViewCell にリンクし、そこから移動しました。明確にするために: すべて正常に動作します。ただし、textContainer をカスタマイズする必要があります。
- アップデート -
私のコードサンプルは私がやりたいことを示していると思いましたが、まだいくつかの説明があります:
テキストビューをすべての面で TableViewCell と連続させたい。ストーリーボードでこれを達成できなかったため、コードに次の行を追加します。
self.animalBioTextView.bounds=self.bounds
テキストビューはセルに隣接しているため、子ビューの境界を「簡単に」使用してテキストビューに渡すことができるはずです。しかし明らかに、境界は子供たち自身に関するものです。では、UITableViewCell に関する座標を取得するにはどうすればよいでしょうか。私の場合は
self
ios - NSLayoutManager でテキスト サイズを計算する
私は TextKit フレームワークを使用して、次のような列にテキストをタイプセットするビューに取り組んでいます:
UIView
の境界をエッジ インセット (黒い四角形) で使用して 10 を計算し、それを(赤い四角形)CGRects
に変換します。NSTextContainers
で、グリフをタイプセットして描画する にdrawRect:
それらを渡します。NSLayoutManager
私の質問は次のとおりです。必要な列の数を計算するにはどうすればよいですか? 一定数の列を描画できますが、テキストの長さが変化するため、列の数をプログラムで調整する必要があります。
[NSLayoutManager glyphRangeForTextContainer:]
テキスト コンテナを空のままにしておくと、長さ 0 の範囲を返すメソッドが見つかりました。したがって、ループしてテキスト コンテナーを作成し、このメソッドを使用してさらにコンテナーが必要かどうかを判断することができます。ただし、この方法はレイアウト計算をトリガーするため非効率的であると言われています。おそらく何百回もループして実行するのは好ましくありません。
もっと良い方法があるはずです!
答えてくれてありがとう、ピート。
ios7 - iOS 8 の UITextView でこの不要なコンテンツ インセットが発生する原因は何ですか (iOS 7 にはありません)?
UITextView
iOS 7 で、自動レイアウトを使用して、プログラムで sを作成してきました。次のようなものです。
作成した他の制約に加えて、テキスト ビューの下部に次の制約があります。
キーボードが表示されたときに制約を変更できるように:
それはすべてうまくいっています...
問題
私は Xcode 6 と iOS 8 に切り替えたばかりです (遅く、私は知っています) UITextView
。例 (テキストビューの背景は黄色):
インセットの原因は何ですか?と に接続されNSTextContainer
ていtextContainerInset
ますか?
- iOS 7以降での作業と
NSTextContainer
正しい使用方法はありますか?textContainerInset
UITextView
- iOS 8でそのようにする必要がありますか?
はいの場合、必要なandUITextView
とともにプログラムで a を作成するためのガイダンスをいただければ幸いです。その後設定。(プログラムで自動レイアウトを使用します)。NSTextContainer
NSLayoutManager
textContainerInset
ありがとう。
ios - NSTextContainer でテキストを取得する
NSString コンテンツを含む段落の NSOrderedSet があります。すべてをループすると、大きな文字列が作成され、NSTextStorage が与えられます。しかし、それですべての段落が失われます。
以下のコードを使用すると、ページを数えてコンテンツをページ単位で表示できます。しかし、コンテンツを段落に分けて、ユーザーが特定の段落をいつタップしたかを知りたいです。
NSTextStorage を使用して、コンテンツを単一の大きな文字列としてではなく、小さなテキスト ブロックのコレクションとして表示するにはどうすればよいですか? 注: UIPageViewController を使用してコンテンツを表示しているため、ページごとの段落数も知る必要があります。
ありがとう。
ios - UITextView の NSTextContainer がテキスト ビューの高さで間違った位置 NSLayoutConstraint を変更する
UITextView
次のような固有のコンテンツ サイズを返すように サブクラス化しました。
にオブザーバーを追加しUITextViewTextDidChangeNotification
、テキスト ビューのコンテンツが変更されたときに高さを更新して、テキストの高さに応じて成長させます。
しかし、テキストビューの高さを埋めるのに十分な行がある場合、新しい行が追加される時間の半分は、この図でわかるように UITextView の NSTextContainer が適切に配置されていません
(NSTextContainer は赤で囲まれ、UITextView は青で囲まれています)
新しい行が追加される残りの半分の時間は、NSTextContainer が正しく置き換えられます。
この奇妙な動作を解決する方法が見つかりませんでした。
あなたの一人がそれを修正するための答えを持っていることを願っています.
ありがとうございました