私はgoogleとそれを検索していますが、私の問題を解決するためにインターネット上に何も見つかりませんでしたが、私の問題は解決しやすいと思っていますが、それ。UILabelの自動スクロール機能
私は、テキストを読むためにスクロールできる非常に長いテキストを持つReadingViewというテキストを含むviewcontrollerを持っています。ユーザーがReadingViewに行くとき、それはそれ自体で一番下まで自動スクロールし、ユーザーは、私は、問題は、私はこのコード
[UIScrollView beginAnimations:@"scrollAnimation" context:nil];
[UIScrollView setAnimationDuration:1.0f];
[scroll setContentOffset:CGPointMake(x, y)];
[UIScrollView commitAnimations];
で問題なく自動スクロールを行うことができますです
を実装UISliderことにより、スクロールの速度を上げることができます
しかし、コードは時間を基準にしています。私は、フレームまたはピクセルに基づいてアニメーションを見つけなければならない。なぜなら、時間に基づいてアニメーションを使用するとテキストの一部が非常に長いため、短いテキストは非常に遅くなる一方で、非常に速く下にスクロールします。
私のような
「scrollviewねえ、フレームごとにあなたが まで10ピクセルでコンテキストの終わりを下に移動する必要があると私はどのくらい気にしないのアニメーションを行うことができれば、皆さんはどんな考えを持っていますかそれはかかります、速度を修正しました! " Fogmeisterのお勧めで完了
あなたの助けをありがとう、君たちは私にキーワードを与えることによって私を助けるか、何ができ
UPDATE 。 概念はブロックアニメーションを使用して、 時間=テキスト長/速度 を使用して各テキストの時間を計算し、各テキストの異なる時間を取得し、その時間をアニメーションに使用します。私はこれを考えることはありません....私はいつも探しているのは、間違ったキーワードであるPIXELによるアニメーションを行う機能です。
CGFloat scrollingPointSpeed = myslider.value; //value of UI Slider//
CGFloat time = offset/scrollingPointSpeed ;
[UIView animateWithDuration:time delay:0.0 options:UIViewAnimationOptionCurveLinear animation:^()
{
self.scroll.contentOffset = CGPointMake(0, offset);
}
completion:nil];
uilabelの総ライン数に基づいてsetAnimationDurationを設定します – NANNAV
このアニメーション方法は、iOS 4以降では使用しないでください。私の答えのようなブロックベースのアニメーションを使用する必要があります。 – Fogmeister