gpt4 book ai didi

iphone - 如何在 UITableView 透明 header 下屏蔽 UITableViewCells

转载 作者:IT王子 更新时间:2023-10-29 07:48:05 26 4
gpt4 key购买 nike

我希望标题遮盖单元格,而不是背景。

我有一个带有透明标题和单元格的 UITableView,类似于 Apple 的通知中心(当您在 iPhone 的状态栏上向下滑动时)。我不知道如何屏蔽单元格,以便它们在滚动时不会显示在标题下方。

我试过更改 tableview 的 contentInsets,我试过将标题 View 的框架更改为负原点。

最佳答案

尝试创建UITableviewCell 的子类并添加这些方法

- (void)maskCellFromTop:(CGFloat)margin {
self.layer.mask = [self visibilityMaskWithLocation:margin/self.frame.size.height];
self.layer.masksToBounds = YES;
}

- (CAGradientLayer *)visibilityMaskWithLocation:(CGFloat)location {
CAGradientLayer *mask = [CAGradientLayer layer];
mask.frame = self.bounds;
mask.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithWhite:1 alpha:0] CGColor], (id)[[UIColor colorWithWhite:1 alpha:1] CGColor], nil];
mask.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:location], [NSNumber numberWithFloat:location], nil];
return mask;
}

并在 UITableView 中添加此委托(delegate)方法

#pragma mark - UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
for (iNotifyTableViewCell *cell in self.visibleCells) {
CGFloat hiddenFrameHeight = scrollView.contentOffset.y + [iNotifyHeaderView height] - cell.frame.origin.y;
if (hiddenFrameHeight >= 0 || hiddenFrameHeight <= cell.frame.size.height) {
[cell maskCellFromTop:hiddenFrameHeight];
}
}
}

*请注意 [iNotifyHeaderView height]HeaderView 的高度.并使用 #import <QuartzCore/QuartzCore.h>用于自定义单元格。

关于iphone - 如何在 UITableView 透明 header 下屏蔽 UITableViewCells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com