- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的 UITableView
中,我使用一种方法滚动到最后一个单元格:
WLNetworkClient.sharedClient().createCommentWIthText(commentTextView.text, forItem: item) { error in
defer {
UIAlertController.showAlertFromError(error)
}
if error == nil {
self.fetchedResultsController.fetchRequest.fetchLimit += 1
try! self.fetchedResultsController.performFetch()
self.tableView.reloadData()
self.scrollTableViewToBottom()
}
}
private func scrollTableViewToBottom() {
tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: fetchedResultsController.fetchedObjects!.count - 1, inSection: 0), atScrollPosition: UITableViewScrollPosition.Bottom, animated: true)
}
但这并没有像预期的那样工作,因为即使我在第二个单元格上,表格总是从顶部滚动到最后。如何解决这个问题?
最佳答案
dosdos 答案在 Swift 2 中对我有用添加小更新
声明ivar
var heightAtIndexPath = NSMutableDictionary()
在函数 viewDidLoad() 中
func viewDidLoad() {
.... your code
self.tableView.rowHeight = UITableViewAutomaticDimension
}
然后添加以下2个方法:
override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let height = self.heightAtIndexPath.objectForKey(indexPath)
if ((height) != nil) {
return CGFloat(height!.floatValue)
} else {
return UITableViewAutomaticDimension
}
}
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let height = cell.frame.size.height
self.heightAtIndexPath.setObject(height, forKey: indexPath)
}
SWIFT 3:
var heightAtIndexPath = NSMutableDictionary()
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
let height = self.heightAtIndexPath.object(forKey: indexPath)
if ((height) != nil) {
return CGFloat(height as! CGFloat)
} else {
return UITableViewAutomaticDimension
}
}
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let height = cell.frame.size.height
self.heightAtIndexPath.setObject(height, forKey: indexPath as NSCopying)
}
关于ios - scrollToRowAtIndexPath 始终从顶部而不是从当前偏移量开始滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476407/
我正在尝试滚动表格以显示最后一个单元格。我正在使用 scrollToRowAtIndexPath 底部方法,但它花费了太多时间。我该如何解决这个问题? 最佳答案 要使用自定义时间制作动画,您可以使用以
我正在尝试以编程方式滚动表格 View ,如下编码。请注意,我增加了内容大小,因此我可以看到最后几行。我可以正确手动滚动以在顶部获取所需的索引路径,但以编程方式它不会发生。 [tableview re
我有一个非常奇怪的案例,我想听听您的意见。在我的应用程序中,我有 scrollToRowAtIndexPath 以便在侧面索引上使用选项卡时,它会跳转到单元格。直到大约 3 个月前,它一直运行良好,相
UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]: section (3) beyond bounds
在我的 UITableView 中,我使用一种方法滚动到最后一个单元格: WLNetworkClient.sharedClient().createCommentWIthText(commentTex
我在使用使用 tableview 的应用程序时遇到错误,错误如下所示。 2012-01-19 10:19:51.442 bcode[1176:207] *** Terminating app due
我在使用 UITableView 时遇到问题,它似乎无法在使用 scrollToRowAtIndexPath:atScrollPosition:animated 时正确处理滚动到最后一行 这是我用来引
我对 UITableView 有疑问,尤其是 scrollToRowAtIndexPath .这里我们分别设置了section-header-height和row-height。稍后,当显示键盘时,我
我有一个 UITableView 作为 View 的 subview 。在填充表时的 ViewController 中,我突出显示其中一行并保留该行的 indexPath 记录。我在 cellforR
我有一个带有自定义单元格的表格 View ,其动态单元格高度取决于单元格内容。 我的问题如下,当我在 viewDidLoad 中以编程方式询问滚动到它工作的给定位置时,除了最后一行。有时该行出现但不完
我注意到 scrollToRowAtIndexPath:atScrollPosition:animated: 不会滚动到当前不可见的单元格,所以如果我有 100 个单元格并且我需要到达第 70 个单元
我有一个带有一些自定义单元格的表格 View 。第一个里面是一个按钮。当按下这个按钮时,我想滚动到我的表格 View 中的某个部分。我如何必须将按钮操作与 tableview 链接? 最佳答案 您可以
我是 IOS 7 的新手,我制作了一个测试应用程序,我想在检测到向左滑动时使用 scrollToRowAtIndexPath。检测到滑动,但我正在为“ self ”定义而苦苦挣扎。我收到错误消息 No
我希望我的表格 View 在第一次进入 View 时滚动到底部,但有时不会滚动到底部,有时会使我的表格消失。 (通常发生在第一次或第二次时)。 这是我的滚动代码: -(void)tableScroll
我有一个包含两个 TextField 的子类 UITableViewCell,我想知道如何使用子类中的 scrollToRowAtIndexPath? 我已经设置了 UITextField 委托(de
我正在使用 scrollToRowAtIndexPath 将我的 tableview 集中在先前选择的单元格上,但是它在手机上而不是在模拟器上测试时崩溃了应用程序。 我是这样设置的 - (void)v
我有一个非常简单的问题,但我无法弄清楚问题所在。 我正在尝试在 UITableView 上添加一个导航栏按钮,它将用户滚动到特定的行。我认为使用以下代码会很简单: @IBAction func scr
这是 How to get notified when a tableViewController finishes animating the push onto a nav stack. 的后续行
在一个应用程序中,我正在提取一个 JSON 数组并使用它来填充一个 UITableView: class TableViewController: UITableViewController, NSU
我有一个 UITableView,其中的单元格多于屏幕上显示的单元格。当我收到来 self 的数据模型的通知时,我想跳转到特定行并显示一个非常基本的动画。 我的代码是: func animateBa
我是一名优秀的程序员,十分优秀!