問題タブ [uiscrollview]
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 - UIScrollView でスクロール インジケーターを非表示にする方法はありますか?
これらのインジケーターがユーザーの操作を妨げるユース ケースがあります。メソッドをサブクラス化してオーバーライドしたり、同様のことを行ってスクロール ビューからスクロール インジケーターを削除したりできますか?
iphone - UIScrollView: ユーザーがスクロールしたときにスクロール可能なグリッドでオブジェクトをリサイクルするにはどうすればよいですか?
画像のグリッドを持つ UIScrollView があります。現在は 6 人ですが、いつかは数百人になるかもしれません。もちろん、その UIScrollView 内に数百の UIImageView オブジェクトを作成し、それらすべてを画像データで埋めるのは悪い考えです。Apple docs のどこかでこれを読んでいたと思います。スクロール可能な表示領域を埋める必要があるため、非常に多くの要素のみを作成することをお勧めします。
しかし、UIImageView 要素を即座に再配置すると、パフォーマンスの問題が発生するのではないかと心配しています。おもう。ユーザーが下にスクロールし始めると (0,0 から始まると仮定しましょう)、上部の可視領域からはみ出す UIView オブジェクトを再配置し、それらをすばやく下部に配置してから、非常に (!! ) 行内のその UIImageViews に新しい画像オブジェクトをすばやく追加します。つまり、ユーザーが野生のガゼルのようにどんどん速くスクロールし始めたらどうなるでしょうか。
それを行うためのあなたのアプローチはどうですか?
iphone - pagingEnabled = YESを使用してUIScrollViewのページング動作を設定するにはどうすればよいですか?
ドキュメントには次のように書かれています。
プロパティの値がYESの場合、ユーザーがスクロールすると、スクロールビューはビュー境界の倍数で停止します。デフォルト値はNOです。
ユーザーがスクロールすると、ビュー境界の倍数で停止するのは本当に素晴らしいことです;)しかし、倍数はいくつですか?その蜂はどのように計算されますか?私は本当に奇妙な行動をします。私は15の小さな50x50の画像を垂直に並べています。スクロールする50ユニットごと、またはすべての画像で停止するように設定するにはどうすればよいですか?上に1回、中央に1回、最後に1回停止します。それは私が期待した振る舞いではありません。
iphone - UIScrollViewのスクロールイベントでメソッドを呼び出すにはどうすればよいですか?
ユーザーがスクロールしているときに発生するいくつかの効果を実装したい UIScrollView オブジェクトがあります。ユーザーがスクロール アクションを開始するたびに、またはスクロールするたびに、View Controller クラスでメソッドを呼び出す方法はありますか?
私が必要とするのは、現在のスクロール位置です。便利なものがあることはほぼ確実です。たぶん、現在のスクロール オフセットか何かについて、1 秒あたり 50 回問い合わせることができます。何か案が?
iphone - UIScrollViewのスクロール位置を設定するにはどうすればよいですか?
setContentOffset:animated:メソッドを見てきました。それは特定の位置にスクロールするのでしょうか、それともその「オフセット」はどういう意味ですか?
iphone - UIScrollView デリゲートの -scrollViewWillBeginDragging メソッドが奇妙な contentOffset 値を返すのはなぜですか?
問題が解決しました!私のコードの愚かなタイプミス!
それが私の UIScrollView デリゲートのメソッドです。
コンソールの出力は次のようになります。
確かに、私の contentOffset はそれほど大きくありません;)
iphone - UIScrollViewでのスクロール中にビューのリサイクルをどのように実装しますか?
さて、次の場合に呼び出されるデリゲートがあります。
- スクロールビューはスクロールを開始します
- スクロール動作を初期化した後のスクロールビューからのフィンガーリフテ
- スクロールビューが減速を停止しました
しかし今問題は、スクロール時にそれらのビューをリサイクルしたい場合、スクロール中にそれを非常に迅速に行わなければならないということです。ユーザーがスクロールすると、何かが上から下へ、または下から上へ1つまたは3つのビューを削除するメソッドをトリガーする必要があります。
問題:
ユーザーは非常にゆっくりまたは非常に速くスクロールする可能性があります。知らない。
スクロールが始まるとすぐに、つまり1秒間に50回オフセットが何であるかを確認し、ビューをリサイクルする時期かどうかを判断する必要があります。次の問題は、1秒間に50回メソッドを呼び出す方法と、スクロールが停止するときにそれを停止する方法です。
その問題を解決するためにどのパターンを知っていますか?私はそこにいくつかの良いものがあると確信しています。
iphone - UIScrollView の dataSource オブジェクトをどのように実装しますか?
私が間違っているかどうか教えてください:
新しいクラス ScrollViewDataSource を作成しました。このクラスは、スクロール ビュー用にデリゲート内で作成したプロトコルに準拠しています。これは、スクロール時に非常に複雑なことを行う非常に特殊なデリゲートです。したがって、このデリゲートは、初期化時にそのデータ ソース オブジェクトを受け取ります。データソース オブジェクトにメソッドが追加されました
- (NSArray*)subviewsFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;
そのため、ユーザーがスクロールすると、データを要求するためにスクロール中にデリゲートがデータソース オブジェクトを何度も呼び出します。スクロール中にビューをリサイクルします。つまり、ユーザーが下にスクロールすると、ビューを上から下に削除し、新しいデータで埋めます。
NSArray には UIView オブジェクトが含まれており、スクロール中に適切に配置されます。また、スクロール ビューを含むビューの最初の起動時に、データ ソースはデータを配信して、最初に表示されるコンテンツを表示します。
それは良いパターンですか、それとももっと良いアイデアがありますか? ところで: UITableView が似たようなことをすることは知っています。しかし、私はそれを学びたいです。それは私にとっての練習です。ありがとう!
iphone - pagingEnabled を使用した UIScrollView のページ間の写真アプリのようなギャップ
ページング モードの UIScrollView は、ページが隙間なく隣り合って配置されていることを前提としています。ただし、写真アプリで写真を開いて写真をスワイプすると、ページ間にギャップがあることがわかります。このギャップも欲しい。
既存の解決策があれば探しています。または、以下で説明したもの以外のページギャップの実装に関するさらに奇妙なアイデアを探しています。それとも、私が見逃している明らかな簡単な方法がありますか?
明確にするために、スクロール中にのみギャップを表示したいので、ページコンテンツを単純に挿入することはできません。
scrollViewDidScroll
私の計画は、(右にスクロールしていると仮定して) 最初にターゲット ページがページ境界の右側にわずかにオフセットされ、ターゲット ページに到達するまでに、ページ コンテンツをコールバック内から移動しようとすることです。適切な位置に戻り、ソース ページは境界線の左側にわずかにずれています。(または、物事を継続的に移動する代わりに、ページ間のちょうど中間など、オフセットをシフトする方がよいでしょう。)
私はScrollingMadness の記事 + 例の著者であり、ここで何人かの人々に紹介しています。プログラムによるズームを実装し、写真内のズームとスクロールを写真間のページングと連携させました。だから私は UIScrollView で遊ぶ方法を知っており、高度なものを探しています。
TTScrollView を指ささないでください。私はすでに多くの人にそれを指摘しましたが、ネイティブの UIScrollView の動作とはかけ離れていると感じており、自分のプロジェクトでは使用したくありません。