0

アプリ Snapchat のクールな UI 機能を再現しようとしています。テーブル ビューの通常の高さを超えてスクロールすると、添付の画像に示すように、上にスクロールするほどセルが透明になります。現在、テーブル ビューの背後に背景画像があり、コンテンツの端を越えてテーブルをスクロールすると、その画像の一部が表示されます。ただし、私が知らないのは、テーブルをさらにスクロールするにつれて、テーブルのセルを徐々に透明にする方法です。どんな助けでも大歓迎です。

ここに画像の説明を入力

4

2 に答える 2

2

これは、@ Vijay_07の回答を使用してアプローチした方法です。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    // Fades out top and bottom cells in table view as they leave the screen
    NSArray *visibleCells = [self.tableView visibleCells];

    CGPoint offset = self.tableView.contentOffset;
    CGRect bounds = self.tableView.bounds;
    CGSize size = self.tableView.contentSize;
    UIEdgeInsets inset = self.tableView.contentInset;
    float y = offset.y + bounds.size.height - inset.bottom;
    float h = size.height;


    if (y > h) {
        self.tableView.alpha = 1 - (y/h - 1)*4;
        for (UITableViewCell *cell in visibleCells) {
            cell.contentView.alpha = 1 - (y/h - 1)*4;
        }
    } else {
        for (UITableViewCell *cell in visibleCells) {
            cell.contentView.alpha = 1;
        }
        self.tableView.alpha = 1;
    }
}

その間:

1)ストーリーボードで、テーブルの下にある UIImageView を使用していることを確認してください

2)viewDidLoadでこれを行います:

UIImageView *myImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SAMEIMAGE HERE!!.png"]];
[self.tableView setBackgroundView: myImage];
[self.tableView setBackgroundColor:[UIColor clearColor]];
[self scrollViewDidScroll:self.tableView];

3) .h に追加<UIScrollViewDelegate>

そしてあなたは大丈夫なはずです。

于 2013-08-29T15:07:22.040 に答える
2

プロパティ alpha を使用して、透明なビューを作成できます。

スクロール開始時に ScrollView を使用 - (void)scrollViewDidScroll:(UIScrollView *)してアルファ値を変更し、アルファ値を tableview または cell に設定します。先に進む前に、テーブル ビューのデリゲートを設定してください。

セルの場合、このようにアルファ値を設定cell.contentView.alpha=0.2;できます。間違いがあれば、これで解決できることを願っています。

于 2013-08-28T13:09:10.450 に答える