UITextViewコンテンツインセット
質問
contentInsetsでちょっと不思議なことに遭遇しました。
ストーリーボードにUITextViewがあり、contentInsetがleft50となっていますが、uitextviewにパディングを追加しようとしているので
しかし、このテストでは以下のようにuitextviewの下部にスクロールバーが表示されます。
私は、contentInset がこの水平スクロールバーを発生させずに uitextview を押しつぶすという印象を持っていました。どうすれば水平スクロールバーの必要性を取り除き、このスクロールバーの必要性なしに、インセットと uitextview のすべてのテキストを見えるようにすることができますか?
注:水平方向のスクロールを防止したり、スクロールバーを表示しない(したがって、テキストをカットする)ことについて質問しているのではありません。
どうもありがとうございます。
atomk(UITextViewをssと呼ぶ)の場合。
NSLog(@"Content Size Before %f",self.ss.contentSize.width); Logs: 280
CGSize size=self.ss.contentSize; size.width=size.width-50;
[self.ss setContentSize:size];
NSLog(@"Content Size After %f",self.ss.contentSize.width); Logs: 230
そこには はありません。 コードが追加されたビューと追加される前との間に目に見える違いがあるので、何かが間違っているようです (ありがとうございます)
どのように解決するのですか?
UPDATE: この解決策はiOS 7の時点で古くなっています。
参照
この回答は以下の通りです。
. iOS 7.0 では
textContainerInset
プロパティに
UITextView
が導入された。
Objective-Cが紹介されました。
textView.textContainerInset = UIEdgeInsetsMake(0, 50, 0, 0);
スウィフト
textView.textContainerInset = UIEdgeInsets(top: 0, left: 50, bottom: 0, right: 0)
または ゼブ・ヴァックス が提案したように、Swift 5.0 で。
textView.textContainerInset.left = 50
iOS 7以前のソリューションです。
contentInsetはこの横スクロールバーを発生させずにuitextviewを潰してくれるという印象でしたが...。
私は、これはどのような方法ではないことを恐れている
contentInset
がどのように機能するかは
UITextView
. 参照
Apple のドキュメント
を参照してください。
contentInset
という記述があるところです。
コンテンツビューが囲むスクロールビューから挿入される距離... このプロパティは、コンテンツの周りにスクロール領域を追加するために使用します。
は
contentInset
は
が追加されました。
が追加されます。
を変更することができます。
contentSize
で
viewDidLayoutSubviews
を、上に書いたコードを使って
- (void)viewDidLayoutSubviews
{
self.textView.contentInset = UIEdgeInsetsMake(0, 50, 0, 0);
NSLog(@"Content Size Before %f",self.textView.contentSize.width); //Logs: 280
CGSize size=self.textView.contentSize;
size.width=size.width-50;
[self.textView setContentSize:size];
NSLog(@"Content Size After %f",self.textView.contentSize.width); //Logs: 230
}
ただし、これだと右側で文字が切れてしまいます。
で水平方向のパディングの外観を実現する最も良い方法は、以下のとおりです。
UITextView
の中で水平方向のパディングを実現する最も良い方法は、コンテナ
UIView
. あなたの場合、単に
UIView
を作成し、コンテナビューの中に50px狭いテキストビューを追加します。
この回避策は、テキスト ビューに背景がある場合に問題が発生する可能性がありますが、上記のスクリーンショットからは、それが問題であるようには見えません。
UITextView
(赤枠)の中に
UIView
コンテナの中にある。
もし、あなたの
UITextView
が背景を持っている場合は、参照してください。
- UITextViewのコンテンツインセットをNotesアプリのように設定する方法
- Notes.appのリバースエンジニアリングから学ぶもの (参照:「iPadding」セクション)
もし誰かがより良い解決策を見つけたら、ぜひ教えてください。
関連
-
iOS classic error Undefined symbols for architecture XXX:
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み】UIScrollView Scrollable Content Size Ambiguity
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] iOSシミュレータでスクリーンショットを撮る
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] 16進カラーバリューの使用方法
-
[解決済み] UITextBorderStyleNoneを使用してUITextFieldのパディングを設定する
-
[解決済み] Swiftで配列に要素を追加する