問題タブ [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.

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

iphone - UIScrollViewのスクロールイベントでメソッドを呼び出すにはどうすればよいですか?

ユーザーがスクロールしているときに発生するいくつかの効果を実装したい UIScrollView オブジェクトがあります。ユーザーがスクロール アクションを開始するたびに、またはスクロールするたびに、View Controller クラスでメソッドを呼び出す方法はありますか?

私が必要とするのは、現在のスクロール位置です。便利なものがあることはほぼ確実です。たぶん、現在のスクロール オフセットか何かについて、1 秒あたり 50 回問い合わせることができます。何か案が?

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

iphone - UIScrollViewのスクロール位置を設定するにはどうすればよいですか?

setContentOffset:animated:メソッドを見てきました。それは特定の位置にスクロールするのでしょうか、それともその「オフセット」はどういう意味ですか?

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

iphone - UIScrollView デリゲートの -scrollViewWillBeginDragging メソッドが奇妙な contentOffset 値を返すのはなぜですか?

問題が解決しました!私のコードの愚かなタイプミス!

それが私の UIScrollView デリゲートのメソッドです。

コンソールの出力は次のようになります。

確かに、私の contentOffset はそれほど大きくありません;)

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

iphone - UIScrollViewでのスクロール中にビューのリサイクルをどのように実装しますか?

さて、次の場合に呼び出されるデリゲートがあります。

  • スクロールビューはスクロールを開始します
  • スクロール動作を初期化した後のスクロールビューからのフィンガーリフテ
  • スクロールビューが減速を停止しました

しかし今問題は、スクロール時にそれらのビューをリサイクルしたい場合、スクロール中にそれを非常に迅速に行わなければならないということです。ユーザーがスクロールすると、何かが上から下へ、または下から上へ1つまたは3つのビューを削除するメソッドをトリガーする必要があります。

問題:

  • ユーザーは非常にゆっくりまたは非常に速くスクロールする可能性があります。知らない。

  • スクロールが始まるとすぐに、つまり1秒間に50回オフセットが何であるかを確認し、ビューをリサイクルする時期かどうかを判断する必要があります。次の問題は、1秒間に50回メソッドを呼び出す方法と、スクロールが停止するときにそれを停止する方法です。

その問題を解決するためにどのパターンを知っていますか?私はそこにいくつかの良いものがあると確信しています。

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

iphone - UIScrollView の dataSource オブジェクトをどのように実装しますか?

私が間違っているかどうか教えてください:

新しいクラス ScrollViewDataSource を作成しました。このクラスは、スクロール ビュー用にデリゲート内で作成したプロトコルに準拠しています。これは、スクロール時に非常に複雑なことを行う非常に特殊なデリゲートです。したがって、このデリゲートは、初期化時にそのデータ ソース オブジェクトを受け取ります。データソース オブジェクトにメソッドが追加されました

  • (NSArray*)subviewsFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;

そのため、ユーザーがスクロールすると、データを要求するためにスクロール中にデリゲートがデータソース オブジェクトを何度も呼び出します。スクロール中にビューをリサイクルします。つまり、ユーザーが下にスクロールすると、ビューを上から下に削除し、新しいデータで埋めます。

NSArray には UIView オブジェクトが含まれており、スクロール中に適切に配置されます。また、スクロール ビューを含むビューの最初の起動時に、データ ソースはデータを配信して、最初に表示されるコンテンツを表示します。

それは良いパターンですか、それとももっと良いアイデアがありますか? ところで: UITableView が似たようなことをすることは知っています。しかし、私はそれを学びたいです。それは私にとっての練習です。ありがとう!

0 投票する
8 に答える
20536 参照

iphone - pagingEnabled を使用した UIScrollView のページ間の写真アプリのようなギャップ

ページング モードの UIScrollView は、ページが隙間なく隣り合って配置されていることを前提としています。ただし、写真アプリで写真を開いて写真をスワイプすると、ページ間にギャップがあることがわかります。このギャップも欲しい。

既存の解決策があれば探しています。または、以下で説明したもの以外のページギャップの実装に関するさらに奇妙なアイデアを探しています。それとも、私が見逃している明らかな簡単な方法がありますか?

明確にするために、スクロール中にのみギャップを表示したいので、ページコンテンツを単純に挿入することはできません。


scrollViewDidScroll私の計画は、(右にスクロールしていると仮定して) 最初にターゲット ページがページ境界の右側にわずかにオフセットされ、ターゲット ページに到達するまでに、ページ コンテンツをコールバック内から移動しようとすることです。適切な位置に戻り、ソース ページは境界線の左側にわずかにずれています。(または、物事を継続的に移動する代わりに、ページ間のちょうど中間など、オフセットをシフトする方がよいでしょう。)

私はScrollingMadness の記事 + 例の著者であり、ここで何人かの人々に紹介しています。プログラムによるズームを実装し、写真内のズームとスクロールを写真間のページングと連携させました。だから私は UIScrollView で遊ぶ方法を知っており、高度なものを探しています。

TTScrollView を指ささないでください。私はすでに多くの人にそれを指摘しましたが、ネイティブの UIScrollView の動作とはかけ離れていると感じており、自分のプロジェクトでは使用したくありません。

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

ios - UIScrollView の方向ロックを有効にするにはどうすればよいですか?

私は内側に を持っUIScrollViewています。UIViewビューが垂直方向にのみスクロールされるように、x 軸をロックしたいと考えています。方向ロックを有効にするにはどうすればよいですか?

0 投票する
8 に答える
71826 参照

objective-c - UIScrollView のコンテンツの可視矩形を取得する

実際に画面に表示されている表示ビューのコンテンツの rect (CGRect) を見つけるにはどうすればよいですか。

上記のコードは、ズームがない場合は機能しますが、ズームを許可するとすぐに、1 以外のズーム スケールで機能しなくなります。

明確にするために、スクロールビューのコンテンツの表示領域をコンテンツに相対的に含む CGRect が必要です。(つまり、ズーム スケール 2 の場合、rect のサイズはスクロール ビューのサイズの半分になり、ズーム スケール 0.5 の場合、2 倍になります。)

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

objective-c - Mobile Safari がそのタブで行うように、UIScrollView のコンテンツをフェードイン/フェードアウトします。

注: 以下の UPDATE 回答に新しいソリューションを追加しました。

iPhone/iPod touch の Mobile Safari のタブで見た効果を再現してみました。

基本的に、これは 4 つの再利用可能な UIView (リング バッファーのように機能する) を保持し、水平方向にスクロールする UIScrollView です。スクロールすると、UIView の不透明度がオフセットでシームレスにフェードイン/フェードアウトします。

現在、私は ですべての汚い仕事をしてい- (void)scrollViewDidScroll:(UIScrollView *)scrollViewます。UIScrollView から contentOffset を取得する、ページングを決定する、contentOffset と各 UIView の位置の間のデルタを計算する、呼び出された瞬間の各 UIView のアルファ値を決定/設定するなどscrollViewDidScroll:

そしてそれは機能し、パフォーマンスは問題なく、すべてがスムーズに実行されますが、唯一の問題は計算が多すぎることです.

UIView のbeginAnimations:とを試しcommitAnimations:ましたが、 でscrollViewDidScroll:は役に立ちません。1) 新しいアルファ値はまだ自分で計算する必要があり、2) scrollViewDidScroll: スクロール時に呼び出され続けているため、ここでアニメーションを実行しても意味がありません。この部分をCore Animationで書き直す方法はありますか?そのため、各 UIView のアルファ値を自分で計算する必要はありません。代わりに、作品全体を Core Animation に任せることができます。

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

ios - 画像をズームするための UIScrollView

画像のズームに UIScrollView を使用しています。画像をズームアウトしている間、ダブルタップしてください。

私の質問は、ダブルタップでズームされた画像をズームアウトできるかどうかです。(ズームビューでダブルタップを検出できます)。

Scroll View のこれに使用できるプロパティ。