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

ios - UITableView contentOffset 行为异常

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

我有一个 UIViewController,它有多个从屏幕外输入的 UIView。我没有在 UIViewController 中初始化和设计所有这些 UIView,而是创建了单独的 nib 文件以及相应的 .h/.m 文件,这些文件刚刚被预加载。

在其中一个自定义 UIView 中,我有一个带有标题 UIView 的 UITableView。我试图将这个标题隐藏在我在原始 UIViewController 中的另一个组件下,这个 UIView 将滑入。我最初使用带有 [self.tableView setContentOffset:CGPointMake(0, 44) animated:NO]; 的示例项目解决了这个问题,但这只是在 UITableViewController 中。

由于某种原因,这不适用于子类 UIView。我已经尝试在 - (id)initWithCoderNSCoder *)aDecoder- (void)layoutSubviews 中设置 tableView 的内容偏移量,并且我一直在检查是否偏移量实际上是由

tableView:cellForRowAtIndexPath: 中设置的
NSLog(@"tableView Content Offset: %@", NSStringFromCGPoint(self.tableView.contentOffset));

但它只是返回

tableView 内容偏移量:{0, 0}

有趣的是,如果我在 tableView:cellForRowAtIndexPath: 中设置 contentOffset,它会起作用!但我知道我不应该把它放在那里。有人可以向我解释从自定义 nib 加载 UITableView 时我应该在哪里以及如何实现这个,它只是一个子类 UIView?如果您认为有帮助,我可以发布所有代码。

其他信息:
问题:你是如何从 nib 加载 View 的? – MAB

UIView *newView = [[[NSBundle mainBundle] loadNibNamed"rofileCostTableViewController" owner:self options:nil] objectAtIndex:0];



Best Answer-推荐答案


我将 UITableView 子类化以查看 contentOffset 何时恢复到 {0,0}。它似乎是从私有(private)方法调用 ios7 :_adjustContentOffsetIfNecessary。由于没有记录此方法,我看不到如何防止它更改偏移量,因此我认为解决方法是在延迟后或在 - (int) tableViewUITableView *)tableView numberOfRowsInSection 中更改偏移量NSInteger)部分.

关于ios - UITableView contentOffset 行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358882/

回复

使用道具 举报

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

本版积分规则

关注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