• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - UiTableView 标题没有消失

[复制链接]
菜鸟教程小白 发表于 2022-12-13 02:44:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 UITableView 配置为普通样式,因此我可以将标题 View 卡在表格顶部,直到另一个标题将其拉走。

问题是:如果我有一个标题卡在屏幕顶部,并且我以编程方式滚动到表格的另一部分(该标题根本不应该出现的地方),那么 UIView 将不会被关闭。 IE。如果我再次滚动到表格的该部分,该标题的幽灵将在表格的该部分可见。

See screenshot

我已经实现了方法 - (void)tableViewUITableView *)tableView didEndDisplayingHeaderViewnonnull UIView *)view forSectionNSInteger)section 来了解发生了什么。我发现如果我手动滚动直到一个标题被拉离屏幕,这个委托(delegate)就会被调用。但如果我以编程方式滚动,则不会调用委托(delegate)。

顺便说一句,我尝试使用两种不同的方法以编程方式滚动,问题是一样的。

- (void)setContentOffsetCGPoint)contentOffset animatedBOOL)animated;
- (void)scrollToRowAtIndexPathNSIndexPath *)indexPath atScrollPositionUITableViewScrollPosition)scrollPosition animatedBOOL)animated;

我可以想象的一种解决方法是实现 - (void)scrollViewDidScrollUIScrollView *)scrollView;,过滤可见屏幕之外的所有标题 View ,并将它们从 super View 中删除。我可能可以让它工作,但我想知道是否有其他更好的解决方案。

[EDIT] 如果我调用 - (void)setContentOffsetCGPoint)contentOffset animated:(BOOL)animated; 且动画 = YES,则该错误不会发生。我可以使用这个解决方案,但在某些情况下我真的希望在没有动画的情况下滚动。



Best Answer-推荐答案


不完全确定我完全理解您的问题,但是一旦您以编程方式滚动离开该区域/部分并且 < strong>然后返回。

我不确定您如何填充标题 View 内容,但我有 几个 应用程序运行 UITableView 的多个部分标题需要更新滚动/内容偏移量没有问题,只要你用这个委托(delegate)“绘制”你的标题:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    // Per section, simply return the appropriate header view

    ...

    NSString *someIdentifier = [NSString stringWithFormat"sectionHeaderView:<some #, letter, or tag>", <SOMETHING UNIQUE ADD HERE>];
    UITableViewHeaderFooterView *myHeaderView = [self.tableView dequeueReusableHeaderFooterViewWithIdentifier:someIdentifier];

    if (!myHeaderView) {

        // No header view found with that ID. Make a new one 

    }

    ... 

    return myHeaderViewForSection;

}

这样,无论您是手指滚动还是以编程方式设置您喜欢的内容偏移量,您的表格 View 都将知道要绘制什么、何时绘制以及放置在何处。

使用他们的代表有点麻烦,因为一开始有点乏味,但使用 viewForHeaderInSection 证明是我获得我(你)想要的结果的唯一方法。

希望这会有所帮助 - 编码愉快!

关于ios - UiTableView 标题没有消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46587878/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap