問題タブ [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.
iphone - カスタムUIViewの問題
カスタムUIViewクラスがあり、IBのビューをこのクラスにリンクしています。私自身のカスタムクラスでは、私は関数を持っています
したがって、私のビューコントローラでは、この関数を次のように呼び出しています。
ただし、関数は正しく機能しますが、UIViewがこの関数に応答しない可能性があり、idを返すと見なされるなどの警告が表示されます。カスタムクラスをIB alrのビューにリンクしているため、どのように発生するかわかりません。plshelp
iphone - UIWindow が子であり、UView の親でもあるのはなぜですか?
UIKit リファレンスは、UIView は UIWindow のスーパークラスであると述べていますが、この親子関係にもかかわらず、UIWindow は実際には UIView を管理します。これは私にはとても珍しいように聞こえます。
ソフトウェア設計の観点から、これの重要性を知っている人はいますか?
どうもありがとう。
編集:
iPhone プログラミング ガイドの関連する段落を読みました。UIWindow を UIView の親にします。Apple がクラス階層をこのように設計することを余儀なくされた何かがあったに違いありません。
iphone - UIScrollView の dataSource オブジェクトをどのように実装しますか?
私が間違っているかどうか教えてください:
新しいクラス ScrollViewDataSource を作成しました。このクラスは、スクロール ビュー用にデリゲート内で作成したプロトコルに準拠しています。これは、スクロール時に非常に複雑なことを行う非常に特殊なデリゲートです。したがって、このデリゲートは、初期化時にそのデータ ソース オブジェクトを受け取ります。データソース オブジェクトにメソッドが追加されました
- (NSArray*)subviewsFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;
そのため、ユーザーがスクロールすると、データを要求するためにスクロール中にデリゲートがデータソース オブジェクトを何度も呼び出します。スクロール中にビューをリサイクルします。つまり、ユーザーが下にスクロールすると、ビューを上から下に削除し、新しいデータで埋めます。
NSArray には UIView オブジェクトが含まれており、スクロール中に適切に配置されます。また、スクロール ビューを含むビューの最初の起動時に、データ ソースはデータを配信して、最初に表示されるコンテンツを表示します。
それは良いパターンですか、それとももっと良いアイデアがありますか? ところで: UITableView が似たようなことをすることは知っています。しかし、私はそれを学びたいです。それは私にとっての練習です。ありがとう!
iphone - UIViewアニメーションの相互作用が悪い
別々のアニメーション間の相互作用のように見えるものを見ています。この影響を排除するための提案をいただければ幸いです。
基本的に:ルートビューにボタン「a」を含むiPhoneアプリがあります。'a'をタップすると、ナビゲーションビューコントローラースタック上のビューがフリップアニメーションでプッシュされます。プッシュされたビューには、ビューをルートに戻すためのボタンがあります。
基礎となるコード:
}
これはうまく機能しているようで、アニメーションは非常にスムーズです。
ルートビューには、サブビュー('panelView')と別のボタン'b'も含まれています。panelViewは、他の2つのサブビューのいずれかを表示できます。スピンアニメーションを使用して、これらのサブビュー間で「b」スワップをタップします。コード:
}
これもうまくいくようです。交換可能な各パネルには、ピッカーといくつかのラベルが含まれています。
ただし、「b」遷移がその前に実行されている場合、「a」遷移は遅くてぎくしゃくすることに気付きます。つまり、アプリを起動して「a」を数回実行すると、スムーズに実行されます。次に、「b」を数回前後に動かします。次に、「a」をもう一度試してください...「a」はジャーキーになり、アプリが再起動するまでジャーキーのままになります。
これは100%再現可能です。シミュレーターを使用すると微妙ですが、デバイスでは非常に明白です。リークをテストしましたが、リークツールでは表示されません。アニメーションが「b」操作から削除された場合(アニメーションステップをコメントアウトするだけ)、「b」サブビュースワップが実行された後、「a」への影響は観察されません。ピッカーを交換可能なパネルペン先から取り外すと、同様にその影響はなくなります。'a'アニメーショントランジションがキャッシュに設定されている場合、'b'の後は途中で途切れることはありませんが、アニメーションを無視しているように見えます。単にビューを入れ替えるだけです(これは知覚の問題かもしれません)。
よくわからない場合:これらの個別の操作を同時にトリガーしていません。「b」が実行されて完了した後のアニメーション「a」は、「b」が実行されたことがない場合と同じではありません。アニメーションの後に行うべきクリーンアップはありますか?サブビュー交換コードに欠陥がありますか?または...?
提案を事前に感謝します。
objective-c - UIView.exclusiveTouchが機能しないのはなぜですか?
私のiPhoneプロジェクトの1つには、タッチしてドラッグすることで移動できる3つのビューがあります。ただし、2本の指を使用して、ユーザーが2つのビューを同時に移動できないようにします。そのため、UIView.exclusiveTouchを試してみましたが、成功しませんでした。
プロパティがどのように機能するかを理解するために、ViewControllerに次のコードを使用して新しいプロジェクトを作成しました。
これを実行すると、いずれかのボタンを押すと、異なる送信者でhej:が呼び出されます。ただし、ボタンの1つでexclusiveTouchがYESに設定されている場合でも同様です。私はmultipleTouchEnabled-linesにコメントを付けようとしましたが、役に立ちませんでした。誰かが私がここで欠けているものを私に説明できますか?
ありがとう、エリ
iphone - サブクラス化せずに UIView の背景をグラデーションにする
UIView の背景をサブクラス化せずにグラデーションにする方法はありますか? これを達成するために画像ファイルを使用したくありません。背景のグラデーションを描画するためだけに UIView をサブクラス化する必要があるのは鈍いようです。
iphone - 画像をポップアップで表示
UIWebView の上に表形式のデータをモーダルとして表示する必要があります。基本的には UIAlertView です。ただし、このモーダルで表形式のデータを表示する必要がありますが、これは UIAlertView では実行できません (私が知っていることです)。テキストデータを含む画像を作成し、その画像を UIImageView または閉じるためのボタンを持つことができる UIView 内に表示することを考えています。それがすべてモーダルにできるかどうかはわかりません。
ビューをサブビューとして UIAlertView に追加できることがわかります: http://blogs.oreilly.com/iphone/2008/03/open-iphone-sdk-building-a-uip.html。ただし、Appleがそれを行うかどうかはわかりません。
これらのアプローチは実現可能に思えますか、それともより良い方法がありますか?
iphone - UITableView を含む UIViewController の再読み込み時の EXEC_BAD_ACCESS
次の手順を実行すると、EXEC_BAD_ACCESS が発生します。
ステップ 1: メイン メニューから [スコア] ボタンをクリックします。 これにより、メニュー (UIView) が削除され、スコア (UIView) が読み込まれ、UITableView に値を設定するプロセスが開始されます。ここでは問題ありません。
ステップ 2: スコア画面から「メニュー」ボタンをクリックします。 これにより、スコア (UIView) が削除され、メニュー (UIView) が再度読み込まれます。ここでは問題ありません。
ステップ 3: メイン メニューから [スコア] ボタンを再度クリックします。 これにより、メニュー (UIView) が削除され、スコア (UIView) が読み込まれ、UITableView に値を入力するプロセスが開始されます。問題あり!
スコア画面 (UIView) を表示する前にアプリケーションがクラッシュします。デバッガーを使用して、問題を 1 行のコードに突き止めました。cell.text = [self->theScoresArray objectAtIndex:indexPath.row]; 以下のルーチンに表示されます。
これは、indexPath オブジェクトが最初に適切に解放されないという問題でしょうか? どんな洞察も役に立ちます。貴重な時間をありがとう。
iphone - UIView: 非破壊的な描画を行うには?
私の元の質問:
私は単純な描画アプリケーションを作成しており、既存の以前に描画されたコンテンツを
drawRect
. 完全に置き換えずに、既存のコンテンツの上に描画する適切な方法は何ですか?
ここや他の場所で受け取った回答に基づいて、これが取引です.
drawRect
が呼び出される たびに四角形全体を再描画する準備をしておく必要があります。次の操作を行っても、内容が消去されるのを防ぐことはできません。
[self setClearsContextBeforeDrawing: NO];
これは、とにかく領域全体を再描画する必要がある可能性が高いため、ビューを事前にクリアしても意味がないというグラフィック エンジンへのヒントにすぎません。ビューが自動的に消去されるのを防ぐことができますが、それに依存することはできません。
消去せずにビューの上に描画するには、オフスクリーン ビットマップ コンテキスト (システムによってクリアされることはありません) に対して描画を行います。次に、
drawRect
このオフスクリーン バッファからビューにコピーします。
例:
TODOdrawRect
: (通常は小さい) 変更された四角形領域のみがコピーに使用されるように、誰でも最適化できますか?
iphone - UIView のオーバーレイ
iPhone の UIView の 2 つのレイヤーをオーバーレイする適切な方法は何ですか? 下にあるビューは、ボタンが押されるまでアクティブである必要があり、その後、別の UIView がすべてを透過的にカバーする必要があります。モーダル ビュー コントローラーを見つけましたが、単に UI ビューを交換するだけで、オーバーレイはしません。
前もって感謝します。
クリス