問題タブ [sizetofit]
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 - 実行時および方向変更中のセンタリングとsizeToFitサブビュー
UIView
これは、私がいくつかのサブビューを設定しているいくつかの問題の最初のものです。UIView
実行時に画面上に動的に配置されるがあります。そのUIView
(マスター)には、aとaUIView
をラップする別の(子)が含まれています。この取り決めのために私が持っている要件は次のとおりです。UIImageView
UILabel
- デバイスが回転するとき、子供
UIView
はマスターの中心に留まらなければなりません。UIView
- のテキストは
UILabel
非常に長くても短くてUIView
もかまいませんが、画像とテキストを含む子は中央に配置したままにする必要があります。 - このシナリオを処理するためにUIViewをサブクラス化することは避けたいと思います。また、IBのいくつかの設定と、可能であれば少し強制的なサイズ変更コードを使用
willRotateToInterfaceOrientation.
して、これらすべてを処理したいフレーム/ポジショニングコードも避けたいと思います。autoresizingMask
これは、Interface Builderのコントロールの配置です(赤で強調表示されています)。
Interface Builderでは、autoresizingMask
説明されているコントロールのプロパティがそのように設定されています
UIView
(マスター):柔軟な上マージン、柔軟な左マージン、柔軟な右マージン、柔軟な幅UIView
(子):柔軟な上マージン、柔軟な下マージン、柔軟な左マージン、柔軟な右マージン、柔軟な幅、柔軟な高さ。(なしを除くすべてのモード)UIImageView
:柔軟な右マージンUILabel
:柔軟な右マージン
これは、ポートレートモードで実行時にプログラムで追加された後のビュー(画像とテキストを含む赤いバー)です。
マスターUIView
の背景は明るい赤色の画像です。子供UIView
の背景はそれよりもわずかに暗く、UILabel
の背景はさらに暗くなります。アプリが回転に反応したときに境界が見えるように、色を付けました。
私には次のことが明らかです。
- 中央に配置されていませんが...
- テキストをIBのデフォルト値から「このマップエクステントにデータがありません」から変更した後。「TEST1、123」へ。ラベルは正しく収縮します。
これは、縦向きで追加され、横向きモードに回転された後のビューです。
ここから私はそれを見ることができます:
- それはまだ中央に配置されておらず、おそらく回転前の元のフレームの原点にあります
- UIView(子)は、表示されるべきではないときに画面全体に表示されるように拡張されました。
- UIView(マスター)が画面幅に合わせて適切に拡張されました。
これは私が今いる場所に私を導いたコードです。showNoDataStatusView
viewDidLoadからメソッドを呼び出します。
次の点に注意してください:
resizeToFitSubviews
は、を呼び出してもUIViewがサブビューに合わせて自動的にサイズ変更されないことがわかったときにUIViewに配置したカテゴリですsizeToFit
。この質問、およびこの質問は問題を説明しました。以下のカテゴリのコードを参照してください。- このすべてのロジックを処理するUIViewサブクラスを作成することを考えましたが、やり過ぎのようです。これをIBに配置するのは簡単なはずですよね?
- 本のすべてのサイズ変更マスク設定を設定し、ラベルとビューのサイズ変更が発生する順序と、マスタービューがサブビューとして追加されるポイントを調整してみました。毎回奇妙な結果が出るので、何も機能していないようです。
UIView resizeToFitSubviewsカテゴリの実装方法:
私が知りたいのは、UIView
スーパービューがビュー階層に追加された後、(子)が適切に中央に配置されない理由です。適切な幅になっているように見えますが、ラベルに「このマップ範囲にデータがありません」と表示されたときに、IBで持っていたフレームが何とか保持されています。
また、デバイスの回転後に中央に配置されない理由と、ここで採用しているアプローチが賢明かどうかも知りたいです。おそらくこれが私が抱えている他の問題を引き起こしています。ここでのUIViewレイアウトのヘルプは大歓迎です。
ありがとう!
ios - UILabel を別の UILabel の真下に配置する
NSString
読み込まれているテキストに応じてを自動的にサイズ変更する追加機能がありますUILabel
(引用を表示する単純なアプリがあるため、いくつかの単語、いくつかの文です)。quote
そのラベルの下にはauthor
、(奇妙なことに) 引用の著者が含まれるラベルもあります。
author
そのラベルをラベルのすぐ下に配置しようとしていますquote
(そのy
座標は、quote
ラベルのy
座標にquote
ラベルのheight
. 、サイズが変わります。引用符が小さいほどスペースが多く、引用符が長いほどスペースが少なくなります。
layer.borderColor/borderWidth
赤と青のボックス (アプリで表示できるように設定したもの) の間のギャップは、見積もりが短いほど大きくなります。
誰かが以下のコードをふるいにかけて、不一致の原因を正確に指摘するのを手伝ってくれるなら、本当に感謝しています. 私が見る限り、author
ラベルは常にquote
ラベルのy + height
値の 35 ピクセル下にある必要があります。
確認のために: すべてが Interface Builder などで正しく接続されています。引用の内容はそこにうまく入っており、他のすべてが機能しているため、接続されています。それは問題ではありません。
明確にするために、私の質問は次のとおりです。引用符の長さに応じてラベル間のギャップが変化するのはなぜですか?35ピクセルの安定した設定可能なギャップを正しく取得するにはどうすればよいですか?
ラベルを配置するために使用しているコードは次のとおりです。
のカスタムメソッドは次のsizeToFitMultipleLines
とおりです。
そして、ここに私のfontSizeWithFont:constrainedToSize:minimumFontSize:
方法があります:
ios - sizeToFit は適切なサイズをどのように決定しますか?
ユーザーが自由にパレットと呼ぶものを追加できるアプリがあります。項目 ( UIViews
) は、あるパレットから別のパレットにドラッグできます。sizeToFit
アイテムが追加または削除されたときにパレットのサイズを自動的に変更する方法を使用できると思いましたが、サイズ変更は行われていないようです。
ドキュメントには、サブビューに合わせてメソッドのサイズが最も適切なサイズに変更されると記載されています。UIViews
プログラムで追加することは含まれませんか?
sizeToFit
組み込みのメソッドを動作させることができれば、独自のメソッドを作成する必要はありません。しかし、それは何もしていないようです。私が試したコードは次のとおりです。
サブビューを追加する前後のサイズは同じです。追加されるサブビューは、このテストを実行した時点で唯一のサブビューであり、サブビューのサイズは移動先のパレットのサイズの約 5% です。では、なぜビューのサイズが変更されないのでしょうか? 自分でやる必要がありますか?
ios - スクロール時にUILabel SizeToFitを使用したUITableViewが混乱する
こんにちは、私の問題がありtableview
ます。セルをuilabel
で作成し、セットの高さをSizeToFit
計算します。UILabel
tableView
私のTableViewVell
方法は次のとおりです。
セルの高さは正しいサイズのままUILabel
です...これはビューをロードしたときの結果です:
そして、これはTableViewのスクロールを開始した後です:
何か助けて???
ios - 動的な高さの UILabel は、画面外に移動した後に機能します
UITableViewCells で複数行の動的 UILabels を作成しようとしています。「コメント」ラベルを持つカスタム UITableViewCell があります。ストーリーボードにセルとラベルを作成します。
UILabel に格納される複数行のデータに基づいて、UITableViewCells の高さを適切に計算できます (heightForRowAtIndexPath を使用)。ただし、私の問題は実際の UILabel コンテンツにあります。UILabel コンテンツは、テーブルの読み込み時に 1 行のデータのみを表示します。ただし、複数行の UILabel データを含むセルが画面外に移動して画面に戻ると、複数行の UILabel に複数行のデータが正しく表示されます。テーブルの読み込み時に複数行のデータが正しく表示されるように、これを修正する方法はありますか?
ありがとう!
ios - UILabel を垂直方向に揃えようとすると sizeToFit が機能しないのはなぜですか? 中心に留まっているだけです
UILabel 内でテキストを垂直方向に揃える方法についてのアドバイスを求めてこの投稿を読んでいましたが、一番上のコメントが優れた解決策を示しているようでした。
UILabel
行数を 0 に設定しています。次に、viewDidLoad
View Controller の一部であり、それを呼び出しsizeToFit
ましたが、まだ真ん中しか占めていません。
Interface Builder では次のようになります。
実行するとまったく同じように見えますが、できればそのアウトラインボックスの上部に非常に近くしたいのに、テキストはナビゲーションバーからまだ離れています。
私は何を間違っていますか?
ios - UITextViewのサイズ変更 - 高さが調整されない
これはとても簡単なはずですが、何らかの理由でうまくいきません。テキスト ボックスのサイズを変更し、理想的には下部にパディングを入れたいと考えています。とりあえず適当にリサイズしてみます。
セットアップ
ストーリーボードの単一ビュー
インターフェース
実装
フレームの高さを変更したり、ここで他のユーザーの提案を変更したりするなど、いくつかの異なる解決策を試しました...
これはios7とxcode 5を使用していますが、なぜそのような基本的な機能に問題があるのか わかりません。
混乱を招くために、sizeToFit の後にフレームの高さと contentsize を記録しました。私の結果は次のとおりです。
したがって、フレームは正しい高さを明確に認識していますが、ディスプレイではすべてのテキストが切り取られ、ボックスのサイズが調整されません。