4

ボタンがタップされたときにモーダルを表示するアプリに About ビューコントローラーを実装しています。

ビューコントローラーには、UILabel とそこに表示されるテキストがあります。テキストをアニメーション化して、映画の最後にスクロールするクレジットのように、アプリを作成したチーム メンバーの名前を自動的にフェードインまたは上方向にスクロールしたいと考えています。

UILabel のテキストに対して同様のスクロールが機能する人はいますか?

4

1 に答える 1

4

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 オフセットに対するラベルの位置に基づいてアルファ レベルを計算できます。

于 2013-06-15T19:11:26.200 に答える