問題タブ [uiview]

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 投票する
3 に答える
23473 参照

iphone - UIView のサイズを決定する場所

UIViewController概要:ビューを初期化するときに、UIView インスタンスのサイズをどのように知る必要がありますか?

UIView 専用の初期化メソッドはinitWithFrame:(CGRect)frameメソッドです。これにより、新しく作成された UIView のフレームが設定されます。このメソッドはUIViewController's、そのビュー コントローラーのビューが要求された場合、loadView メソッドから呼び出すことができます。UIViewControllerサブクラス化とビュー サイズに関する状態のドキュメント:

ビュー階層のビューを作成するときは、常にビューの自動サイズ変更プロパティを設定する必要があります。ビュー コントローラーが画面に表示されると、通常、そのルート ビューは使用可能なスペースに合わせてサイズ変更されます。これは、ウィンドウの現在の向きや、ステータス バーなどの他のインターフェイス要素の存在によって異なります。

したがって、UIViewControllerインスタンスはこれらのプロパティを設定する必要があります。これまでのところ、UIViewControllerそのビューがどれほど大きいか、またはこれから大きくなるかを知る必要はありません。

a のビューUIViewControllerが要求され、view プロパティが nil の場合、View Controller の loadView メソッドが呼び出されます。を初期化する必要があるため、問題が発生しましたUIViewが、View Controller はまだビューのサイズを認識していません。そのビューをどのくらいの大きさで初期化する必要がありますか? ビューのサイズはコードのどこで決定しますか?

ビューをゼロ四角形 ( CGRectZero)で初期化できます。

そして、呼び出し元に次のようにビュー フレームを設定させます。

これはビュー コントローラ (viewController.view) からビューを要求し、そのビューを loadView メソッドでロードします。この loadView メソッドは、ビューをCGRectZero. 次に、呼び出し元がそのフレームを設定します (view.frame = ...)

UIView問題は、ビューのフレーム プロパティが 2 回設定されていることです。カスタムが setFrame メソッドで高度なレイアウトを行っている場合 (たとえば、サブビューの配置とサイズ変更)、さらに二重の作業が発生する可能性があります。UIViewControllerivar に保存する CGRect を呼び出し元に要求する専用の初期化メソッドを作成することで、これを防ぐことができます。loadView メソッドが呼び出された時点で、この ivar を使用してビューを作成します。

ここに行く良い方法は何ですか?ビューのフレームを 2 回設定する (で初期化してCGRectZeroから設定する) かUIViewController、CGRect で新しいイニシャライザ メソッドを指定する (したがって、フレーム プロパティを指定する) か。それとも、何かが足りないのでしょうか。他の可能性はありますか?

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

uiview - UIViewでサブビューを削除する方法

私のアプリケーションには2つのビューがあり、それらの名前はLoginviewとsampleviewです。

私が追加したこのLoginview[self.view addsubview:Loginview];

ログインアクション後。self.viewを次のように変更しました[self.view addsubview:sampleview];

しかし、その時もloginviewが表示されています。

これを避けるために。でサブビューを削除する方法はself.view

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

iphone - メイン ビューの上でサブビューを反転する

メイン ビューの約 3/4 のサイズのメイン ビューの上にサブビューを作成しようとしています。ボタンが押されると、サブビューは別のサブビューにフリップする必要があります。私は近くにいますが、2つの問題があります。

最初の問題は、最初にフリップ ボタンを押すと、2 番目のサブビューが全画面表示で開始され、フリップ アニメーションがレンダリングされるのではなく、指定されたフレーム サイズに縮小されることです。

2 番目のビューがレンダリングされたら、最初のビューと 2 番目のビューを切り替えることができます (テスト目的で、元に戻すための 2 番目のボタンを追加しました)。

私の 2 番目の問題は、ビューが反転すると、反転の前に新しいビューが読み込まれ、その後反転が発生することです。それが正しく機能する前に、反転ビューを作成しましたが、画面全体がビューである場合のみです。

メインのView Controllerにあるコードは次のとおりです。

2 つのボタンのコードは次のとおりです。

私の問題のいずれかに関するヘルプは大歓迎です!

0 投票する
2 に答える
4827 参照

objective-c - UIWindow と UIView addSubview 質問

addSubview メソッドは実際にビューをアプリケーションにロードしますか? 私が質問している理由は、アプリケーションに 2 つのビューがあるためです。アプリケーション デリゲートは、2 つのビューをサブビューとして追加し、ビューの 1 つを前面に表示します。これで、各ビューの viewDidLoad メソッドのそれぞれに print ステートメントができました。アプリケーションを実行すると、アプリケーション デリゲートはビューをサブビューとしてロードし、各ビューがロードされると、実際に、各 viewDidLoad メソッドに配置したステートメントがコンソールに出力されます。これはこれを行うことになっていますか?

0 投票する
11 に答える
29190 参照

iphone - 通話中ステータス バーのサイズを変更しますか?

nib の通話中ステータス バーに応じてビューのサイズを変更するにはどうすればよいですか?

サイズ変更プロパティを設定するだけだと思いましたが、ルートUIViewでは有効になっていません。

(ここでの私の主な問題は、これが何と呼ばれているのかわからないことだと思います。シミュレーターメニューコマンドについて説明している場所を除いて、どのドキュメントにも通話中ステータスバーへの参照が見つかりません。)

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

iphone - ペン先からロードされたビューは、メソッドで実行している間、UILabelのコンテンツを更新しません

一部のバックグラウンドプロセスの実行中に表示されるように作成した「myInfoBox」オブジェクトのコンテンツを更新する際に問題が発生します。

デリゲートメソッドで、新しいviewControllerを作成しています。

以下は、「myFirstViewController」の実装です。これにより、「infoBox」クラスのインスタンスが作成されます(コードは後で示します)。

テストで私に何が起こるかというと、-(void)loadMainViewメソッドが完了するとmyInfoBoxオブジェクトが画面に作成され、alertViewが前面にあるときに(テスト用に)画面に「myInfoBox」がバックグラウンドで表示されます。 。)この時点で画面が応答し、[はい]を選択できます。[はい]を選択すると、デリゲートメソッドが呼び出されます。ソースファイルでコメントしたように、ブレークポイントを使用してシミュレーターを監視し、コードに従っていますが、-(void)userInitialSetupMainThreadメソッドを使用している間は、変更されたラベル値が反映されませんが、ビューが更新されると更新されます最新の設定された.text値で!! grrr ..

また、myInfoBoxクラスのソース:

長い投稿でごめんなさい:)助けてください!

0 投票する
2 に答える
4773 参照

iphone - UIView アルファ問題

UIView サブクラス オブジェクトのアルファ値の設定に問題があります。助言がありますか?

明るさを制御するために操作しているアルファ プロパティを持つ UIView プロジェクトがあります。UISlider コントロールを使用して、次のように UIView サブクラスの alpha プロパティの値を設定しています。

親オブジェクトのsliderValueChangedメソッドは、別のUIViewサブクラス オブジェクトであるOverlayViewのアルファ値を変更します。親オブジェクトは、UIViewController のサブクラスである myViewController です。スライダーは、SliderView という名前の 2 番目の UIView サブクラスにあります。

これはうまくいくようです。UISlider の .hidden プロパティを切り替えようとすると、問題が発生します。.hidden プロパティを YES に変更すると、

スライダーは消えますが、OverlayView オブジェクトのアルファ値は 0.0 にリセットされます。スライダーの値は変わりません。
UISlider オブジェクトの非表示プロパティが変更されたときに、sliderValueChanged メソッドによって設定された OverlayView の alpha プロパティを変更しないようにします。

私が間違っていることに関する提案はありますか?ありがとう。

0 投票する
3 に答える
3398 参照

iphone - 3 つ以上のビューを切り替える

私はiPhone開発に不慣れで、本当にこれを理解しました。私はそれを愛していますが、私を悩ませていることが1つあります. ビューを切り替え続けるにはどうすればよいですか? 新しいプロジェクトを作成するときに与えられた最初のビューから作成したビューに移動する方法は知っていますが、この 2 つのウィンドウを渡すにはどうすればよいでしょうか? 作成したビューにアクセスするにはどうすればよいですか?

UITableViewControllerをフィードするNavigationControllerを備えたメインウィンドウを持つこのアプリがあります。これが私のメインメニューです。右上隅に新しいビューを表示する「+」ボタンがありますが、ここから新しいビューを取得するにはどうすればよいですか? ユーザーが追加するものを選択したときに新しいビューをプッシュするにはどうすればよいですか?

誰かが私の質問を理解してくれることを願っています。いくつかのドキュメントへのリンクは問題ありません。私はいたるところを見てきました。