UITextViewは、iOSアプリケーションで最も一般的に使用される要素の1つです。ほとんどの場合、ユーザーがより長いテキストを記述できるようにしたい場合などです。それらからフィードバックを受け取ります。
多くのプロジェクトで、デザイナーからの要件を満たしているのは、提供されたコンテンツに自動的に高さを適応させるTextViewを用意することです。ありがたいことに、それはかなり簡単な作業です。これを実現するには、次の設定を行うだけで、テキストビューのスクロールを無効にすることから始める必要があります。
textView.isScrollEnabled = false
したがって、次のようになります。
self.view.addSubview(textView)
textView.easy.layout(Left(10), Right(10), Top(200))
上記の変更の結果は次のとおりです。
StackOverflowで非常に頻繁に見られるこの問題のバリエーションは、TextViewの2つの機能(スクロールビューの原点とサイズの応答性)を接続する要件です。言い換えると、TextViewに到達し、ユーザーがより多くのコンテンツを提供した後、TextViewを特定のサイズに拡張することがよく要求されます。スクロールを使用して、そうすることができます。これはかなり注意が必要な場合があるため、基本的な手順に分けてみましょう。
ご覧のとおり、プロパティオブザーバーdidSetを使用して変数isOversizedを追加しました。また、UITextViewDelegateを割り当てました。これにより、ユーザーがTextViewを変更するたびに動作できるようになります。
textViewDidChangeの呼び出しに配置される機能は、TextViewで使用されるサイズの計算であり、選択した最大の高さを超えているかどうかを確認します。もしそうなら—True値をに割り当てます。
func textViewDidChange(_ textView: UITextView) {
if textView.contentSize.height >= maxHeight {
isOversized = true
}
}
isOversized = textView.contentSize.height >= maxHeight
また、didSetについては、textView.easy.reload()は、その内容を正確に実行します。制約を再読み込みします。クロージャー.when({[unowned self] in self.isOversized})を適用する必要があります。これについて詳しくは、こちらをご覧ください。
結果はかなりいいようです:
ただし、さらに優れている可能性があることが1つあります。一部のコンテンツを削除した後、textViewは最大の高さに留まります。それを改善するには、いくつかの小さな調整を行う必要があります。
まず、textViewDidChangeを変更しましょう
func textViewDidChange(_ textView: UITextView) {
isOversized = textView.contentSize.height > maxHeight
}
setNeedsUpdateConstraints()という呼び出しも追加しました。そうしないと、textViewは、無効なスクロールのためにコンテンツサイズの再計算を自動的に開始する必要がある瞬間を「見逃す」可能性があり、ユーザーがテキストビューの強制変更を提供するまで(新しい行を追加することによって)TextViewを1行に圧縮する可能性があるため重要です。例)。
結果は次のとおりです。
この記事がお役に立てば幸いです。または、完全な成功の妨げとなった1行のコードが欠落していることがわかりました:)
次のパートでは、少し複雑にして、textViewの最大サイズも動的にする必要がある状況を管理する方法を見ていきます。たとえば、オンスクリーンキーボードを表示するときの小さな画面などです。
facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。
ライドシェアの変革者 Lyft で行っているすべての業務の中で、乗客とドライバー間の送迎の振り付けは、最も複雑かつ重要な作業の 1 つです。この振り付けを成功させるには、Lyft が多くのことをうまくやっているかどうかにかかっていますが、単にライダーをスピードに乗せ続けることが不可欠です。
曖昧さを避けるために、次の用語が使用されます。認証者; ログイン Web サイトの作成に使用されている携帯電話。ユーザーがログイン要求サービスを行うために使用している Web サイトまたはアプリケーション。特定のサービスを提供するベンダー。例:
はじめに:勇敢な読者の皆さん、地球の最も暗い深みへ私たちを導く旅へようこそ。このブログでは、マリアナ海溝の謎に満ちた世界を掘り下げ、その隠された秘密を明らかにし、その表面の下にある骨も凍るような真実を明らかにします。
西のなだらかな丘陵地帯では、太陽の最初の光が平原の曇った草を照らす、まばゆいばかりの金色の朝です。真っ黒で巨大な穏やかなアンガス牛の群れが日の出を背景にシルエットを描き、誰もがよく知っている場所へ人里離れた道を進んでいます。朝食バー。
古いものは再び新しくなり、以前はキラキラ輝いていたものがくすんで見えます。私は、JNCO ジーンズが 1990 年代後半の他のファッションとともにダウンタウンのクールな子供たちの間で復活したことについて話しているのではありません。