ボタンがタップされたときにモーダルを表示するアプリに About ビューコントローラーを実装しています。
ビューコントローラーには、UILabel とそこに表示されるテキストがあります。テキストをアニメーション化して、映画の最後にスクロールするクレジットのように、アプリを作成したチーム メンバーの名前を自動的にフェードインまたは上方向にスクロールしたいと考えています。
UILabel のテキストに対して同様のスクロールが機能する人はいますか?
ボタンがタップされたときにモーダルを表示するアプリに About ビューコントローラーを実装しています。
ビューコントローラーには、UILabel とそこに表示されるテキストがあります。テキストをアニメーション化して、映画の最後にスクロールするクレジットのように、アプリを作成したチーム メンバーの名前を自動的にフェードインまたは上方向にスクロールしたいと考えています。
UILabel のテキストに対して同様のスクロールが機能する人はいますか?
UIScrollView はトリックを行う必要があります。無限にループさせる非常に簡単な方法は、上下にスクロール ビューのサイズの空白領域を作成することです。(このや WWDC コードのような他の解決策があります (ここで「ストリート スクローラー」を検索してください...ただし、これらは「約」ビューだけでは少し多くなる可能性があります)。
ただし、コンテンツの両端に空白がある場合は、次のようにループできます。
- (void)loopCredits {
CGRect frame = self.creditsScrollView.frame;
CGPoint bottomOffset = CGPointMake(0, self.creditsScrollView.contentSize.height-frame.size.height);
[UIView animateWithDuration:10.0 animations:^{
self.creditsScrollView.contentOffset = bottomOffset;
} completion:^(BOOL finished) {
// non animated scroll back, then run this method again with a perform
// so we don't wind up the stack
self.creditsScrollView.contentOffset = CGPointZero;
[self performSelector:@selector(loopCredits) withObject:nil afterDelay:0];
}];
フェードは、マスキング イメージを使用して簡単に行うことができます。または、よりリアルな外観を得るには、scrollView の境界内のラベルの Y オフセットに対するラベルの位置に基づいてアルファ レベルを計算できます。