問題タブ [autoresizingmask]

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.

0 投票する
1 に答える
711 参照

ios - Xcode Interface Builder の方向変更時のビューの自動サイズ変更

ビュー コントローラーのコンテンツは 3 つのビューで構成されています。Xcode4でインターフェースビルダーを使用しています。ポートレートモードでのようなもの:( 出典:gyazo.comここに画像の説明を入力

向きを横向きに変更したときにこのコンテンツのサイズを自動調整する必要があります。ビュー 2 の幅は一定で、ビュー 2 の境界線を閉じるには、横向きモードの幅を 1 と 3 のビューで増やす必要があります。

インターフェイスビルダーの自動サイズ変更マスクを介してこの動作を実装することは可能ですか?

0 投票する
1 に答える
1096 参照

iphone - Objective-C: AutoresizingMask + 2 つのサブビュー = 苦戦


解決策:将来これを見る人のために、私が使用した解決策は確かにviewDidLayoutSubviews. ソリューションは実際にはかなり複雑でした。ページの再レイアウトが必要になるたびに、いくつかのスケーリング値を計算し、Art ビューのサイズを動的に変更する必要がありました。対処すべきいくつかの奇妙な問題がありましたが、それぞれが削除された後、実装はかなりしっかりしているように感じます.

誰かが後で同様の問題に遭遇した場合は、私に知らせてください。関連するコードを投稿できます。


「空白の」UIView、単一の画像を含む UIImageView であるサブビュー、および基本的に CGContext の円弧と線などのコレクションである 2 番目のサブビューがあります。

私がいる場所: UIImageView サブビューを UIView の上に配置して、その画像が「背景」になるようにしました。次に、CGContext の弧と線のサブビューをその上に配置しました (わかりやすくするために、これを Art サブビューと呼びます)。すべて良い。すべてが完璧に整列して表示されます。

問題:回転すると、調子がおかしくなる。Art サブビューの円弧と線が間違った座標になってしまい、autoresizingmask の設定によっては画像が引き伸ばされるなどの問題があります。一度に 1 つの問題を修正できますが、修正する適切な組み合わせが見つかりません。それら両方!

私が試したこと:ほぼすべての autoresizingMask オプションとオプションの組み合わせを試しましたが、上記のとおり、それらの問題を完全に解決することはできません。viewDidLayoutSubviews でいくつかのカスタム コードを使用してみましたが、autoresizingMasks を使用する場合と比較して、これは非常に薄っぺらで拡張性が低いと感じました。それで、名目上の進歩を遂げた後、私は道を断念しました。

学んだこと: UIImageView フレームと Art サブビュー フレームを同じ寸法にバインドしている限り、円弧と線は適切な座標にとどまります。それはおそらく私の目標を述べる最も簡単な方法です: UIImageView を正しい縦横比 (画像だけでなくビュー自体) に保ち、Art サブビューをそのフレームに正確に一致させます。回転など。

これが私が達成したいことの図です:

+= UIView

~= UIImageView サブビュー

.=アートサブビュー

肖像画

ここで、UIImageView 内の画像は基本的に画面全体を占め (完全ではありません)、Art サブビューはその上にレイヤー化され、下の点は粗い線/円弧を表します。

風景

ここで、UIImageView サブレイヤーはその縦横比を維持し、Art サブレイヤーは UIImageView 内の画像に「ロック」されたままになります。

私のView Controller(問題があると思われる場所-コードをクリーンアップするためにすべてのautoresizingMask設定も削除しました)

resizeImageForScreen: メソッド(これはうまく機能しているようですが、とにかく含めることにしました)

0 投票する
0 に答える
518 参照

iphone - UIButtonの自動サイズ変更の問題

UIButtonを取得して高さを減らし、デバイスを回転させても幅を維持しようとしています。initWithFrame:これがボタンを含むビューのコードです。

ParentView.m

問題:デバイスを回転させる前に、ボタンのサイズが変更され、初期化したフレームよりも小さくなりました(高さが)。

以前の調査:私はこの人と同じ問題を抱えているようです:UIButton autoresizingMaskを機能させることができませんが、アドバイスに従い、同じ不満足な結果が得られました。

また、Appleのドキュメントも調べました。これは、自動サイズ変更マスクは、親ビューの境界が変更された場合にのみ有効になると想定されていると述べています。明らかに、私の親の見方の境界が私が気付かないうちに変わっているか、何か他の怪しいことがここで起こっています。

何が問題になる可能性があるかについてのアイデアはありますか?

0 投票する
1 に答える
718 参照

ios - スクロールビューでのカスタム ビューの自動サイズ変更

次のように xib ファイルからロードされるカスタム ビューを作成しました。

デバイスの向きが変わると、一部のサブビューの自動サイズ変更と配置で問題が発生しています。これらのスクリーンショットは、動作を説明しています。

viewDidLoad の後、すべてが正常に見えます。

ここに画像の説明を入力

横向きモードに回転した後も、レイアウトは問題ありません。

ここに画像の説明を入力

しかし、protrait に戻すと、次のようになります。

ここに画像の説明を入力

同じファイル .h、.m、および .xib は、単一ビューのダミー プロジェクトでテストすると正常に動作します。したがって、xib での配置とサイズ変更の設定は問題ないと思います。私のアプリとの違いは、ビューがスクロールビューに配置され、他のいくつかのビューがあることです。向きを変更すると、これらすべてのビューのサイズが変更されるため、すべてが期待どおりにレイアウトされます。関連するコードは、最も内側の for ループです。

2 回目のオリエンテーションの変更で何が問題になっているのでしょうか? ビュー全体を手動でレイアウトすることもできましたが、自動サイズ変更機能でも可能だと思います。

0 投票する
1 に答える
549 参照

ios - iOS: ビューを回転すると、ボタンのグラデーション レイヤーが自動サイズ変更されない

nextbuttonビューで呼び出される UIButton があります。autoresizingこのボタンは で既に設定していますInterface Builder。では、viewDidLoadこのメソッドを呼び出して、このボタンのグラデーションを設定します。アプリのポートレート モードにはgradientLayerうまく適合しnextbuttonますが、ランドスケープ モードには適合しません。これについて何か提案はありますか?どうもありがとう。

0 投票する
1 に答える
346 参照

ios - iPad - UITableView の自動サイズ変更

私のコードはここにあります:

_contentView に tableview を追加し、self.view に _contentView を追加すると、iPhone では問題なく動作しますが、iPad では、テーブル ビューの自動サイズ変更マスクを設定すると幅と高さが増加する理由がわかりません...自動サイズ変更マスクなしでうまく動作します、しかし、風景用のマスクの自動サイズ変更が必要です。これを解決するには?

自動サイズ変更マスクあり 自動サイズ変更マスク 自動サイズ変更マスク付き なし マスクの自動サイズ変更なし

0 投票する
1 に答える
969 参照

iphone - フレームの増加に伴うマスクの自動サイズ変更の問題-iOS

4つのエッジすべてのすべてのコーナーと中央に8つのサブビューを持つ1つの対角UIViewを作成しました。

すべての赤い点はドラッグして菱形のサイズを変更できます。

すべてのサブビューは、対角UIViewで1回追加されます。画像Screen1を参照してください。 ここに画像の説明を入力してください

ダイアモンドビューのパスフレームは必要ないので、中央と赤い点のフレームで管理できます。Autoresizemaskで管理する必要があるので、増減しながらすべての時間枠を通過する必要はありません。

ひし形の赤い点を作成するためのコードは次のとおりです。

ここでは、菱形を増やしながらいくつかの画像を投稿しました。いくつかの赤い点は奇妙な動作をします。

Screen2に表示されるすべての赤い点のすべての自動サイズ変更マスクのリストは次のとおりです。

ここに画像の説明を入力してください

4つの角の赤い点は正常に機能していますが、4つの中央の端の赤い点は完全には機能していません。いくつかの画面を表示できます。

ここに画像の説明を入力してください ここに画像の説明を入力してください

この問題を解決するためのあなたのアイデアを教えてください。

AutoresizeMaskで管理するフレームやセンターを通過させたくないことを忘れないでください。。

AutoresizeMaskLinkを理解するのに役立つリンク

よろしく、

0 投票する
1 に答える
661 参照

cocoa - -setFrame 以外の方法で設定された NSView フレーム: 自動サイズ変更後

私のアプリケーションは、ウィンドウとそのウィンドウ内のボタンを XIB ファイルから 経由でロードしますNSWindowController。では-windowDidLoad、ウィンドウのサイズに基づいてボタンのフレームをプログラムで設定しました。ウィンドウのサイズは、表示されるボタンによって異なります)。自動サイズ変更マスクは、これらのボタンの XIB で適切に設定されます。問題は、ウィンドウが実際に表示されるときに、自動サイズ変更が適用されていないかのようにボタンが表示されることです。

NSButtonこの問題をデバッグする-setFrame:際に、[self frame]スーパーの-setFrame:. これを使用すると、フレームが 2 回設定されていることがわかります。最初はプログラム レイアウト コード (このフレームを A と呼びます) によって設定され、後で Cocoa がユーザー設定に基づいてウィンドウ サイズを調整します (自動サイズ変更マスクを適用し、フレームを B に設定します)。これらのフレームはすべて正しく見えます。

ただし、ウィンドウが表示されると、後者の-setFrame:呼び出しには永続的な効果がなかったかのようになります。ボタンのフレームは A に戻ります。これは、デバッガーを中断してフレームを出力することで確認できます。フレームの自動サイズ変更の更新は元に戻されています。しかし-setFrame:二度と呼ばれることはありませんでした。

なぜこの動作が見られるのかについてのアイデアはありますか?

0 投票する
0 に答える
136 参照

objective-c - Objective C で setAutoresizingMask のようなものをコーディングする方法

私はBitwise操作に関してはかなり素朴なので、UIViewクラスのsetAutoresizingMaskメソッドのようなものをどのようにコーディングするのか疑問に思っています.

| で区切られた列挙を渡すことができるメソッドを作成できるようにしたいと思います。(パイプ?)文字。

0 投票する
7 に答える
13215 参照

ipad - iOS 6でオリエンテーションを処理できませんか?

使ってます

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

向きのタイプに基づいてビューのフレームを変更するように委任します

すなわち、

iOS6で同じ状況を処理する方法

iOS6では非推奨になりました。

次のデリゲートを使用して、すべての方向を設定しています。

だが、

呼び出されていません。この状況に対処する方法は?

ここに画像の説明を入力してください