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 来创建透明视图。

滚动开始时使用 - (void)scrollViewDidScroll:(UIScrollView *)ScrollView 更改 alpha 值,将 alpha 值设置为 tableview 或单元格。在继续之前为表视图设置委托。

对于单元格,您可以像这样设置 alpha 值cell.contentView.alpha=0.2;我希望这可以解决如果有任何错误很高兴看到我在哪里做错了

于 2013-08-28T13:09:10.450 回答