gpt4 book ai didi

uitableview - scrollToRowAtIndexPath 在 iOS 7 中停止工作 - ?UITableViewCellScrollView?更改 UITableViewCell 层次结构

转载 作者:行者123 更新时间:2023-12-04 16:01:05 25 4
gpt4 key购买 nike

我升级到 Xcode 5,我的应用程序以 iOS 7 为目标,我的应用程序不再响应 scrollToIndexPath 以将适当的 tableviewcell 滚动到键盘之外

我的设置是我有一个自定义的 tableview 单元格,上面有文本字段,并使用它来生成多个 tableview 单元格来显示和编辑地址的一部分。

点击单元格上的文本框触发

- (void)textFieldDidBeginEditing:(UITextField *)textField

让它滚动到顶部的代码如下所示

UITableViewCell *cell = (UITableViewCell*) textField.superview.superview;
[self scrollToRowAtIndexPath:[self indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];

这在 iOS 6 中运行良好,但在 iOS 7 中不起作用。它也不会产生任何错误。

最佳答案

这里的解决方案很简单

看来tableviewCells的层级发生了变化

所以添加一个额外的 .superview

UITableViewCell *cell = (UITableViewCell*) textField.superview.superview;

成为

UITableViewCell *cell = (UITableViewCell*) textField.superview.superview.superview;

它适用于 iOS 7。

textField.superview.superview 曾经是 UITableViewCell 类的对象(或者更具体地说是我的自定义 UITableViewCell)

现在它是 UITableViewCellScrollView 类的一个对象,您需要获取它的 super View 。

UITableViewCellScrollView 是一个私有(private)子类,显然可以使向左滑动以显示删除按钮

After working this out i found this blogpost which illustrates it nicely

希望这能阻止你们中的一些人拔头发:)

西蒙

关于uitableview - scrollToRowAtIndexPath 在 iOS 7 中停止工作 - ?UITableViewCellScrollView?更改 UITableViewCell 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19134423/

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