我正在尝试复制应用Snapchat所具有的酷炫UI功能。滚动超过表格视图的正常高度时,向上滚动越多,单元格变得越透明,如附图所示。目前,我在表格视图后面有一个背景图像,并且在其内容边缘之外滚动表格会显示该图像的一部分。然而,我不知道的是,当一个人进一步滚动表格时,如何使表格单元格逐渐变得更加透明。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以使用属性alpha来创建透明视图。
使用
滚动开始时- (void)scrollViewDidScroll:(UIScrollView *)
ScrollView更改alpha值,将alpha值设置为tableview或cell。在继续之前为表视图设置委托。
对于单元格你可以设置像这样cell.contentView.alpha=0.2;
的alpha值我希望这可以解决如果有任何错误,我会看到我错误的地方
答案 1 :(得分: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>
你应该没事。