相关疑难解决方法(0)

如何判断UITableView何时完成了ReloadData?

我想在完成表演后滚动到UITableView的底部 [self.tableView reloadData]

我原本有

 [self.tableView reloadData]
 NSIndexPath* indexPath = [NSIndexPath indexPathForRow: ([self.tableView numberOfRowsInSection:([self.tableView numberOfSections]-1)]-1) inSection: ([self.tableView numberOfSections]-1)];

[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
Run Code Online (Sandbox Code Playgroud)

但后来我读了reloadData是异步的,所以滚动不因为发生self.tableView,[self.tableView numberOfSections]并且[self.tableView numberOfRowsinSection都是0.

谢谢!

有什么奇怪的是我正在使用:

[self.tableView reloadData];
NSLog(@"Number of Sections %d", [self.tableView numberOfSections]);
NSLog(@"Number of Rows %d", [self.tableView numberOfRowsInSection:([self.tableView numberOfSections]-1)]-1);
Run Code Online (Sandbox Code Playgroud)

在控制台中它返回Sections = 1,Row = -1;

当我完成相同的NSLogs时,cellForRowAtIndexPath我得到Sections = 1和Row = 8; (8是对的)

objective-c uitableview reloaddata

167
推荐指数
8
解决办法
11万
查看次数

当UITableView完成数据请求时收到通知?

有没有办法找出什么时候UITableView从数据源请求数据?

相关视图控制器()的viewDidLoad/ viewWillAppear/ viewDidAppear方法UITableViewController都没有在这里使用,因为它们都过早发生.它们(完全可以理解)都不保证对数据源的查询暂时完成(例如,直到滚动视图).

一个解决办法,我发现是调用reloadDataviewDidAppear,因为当reloadData返回时,表视图保证完成尽可能多的,因为它需要暂时查询的数据源.

但是,这看起来相当令人讨厌,因为我认为这是因为reloadData它首次加载时会导致数据源被要求提供相同的信息两次(一次是自动的,一次是因为调用).

我想要这样做的原因是我想要保留 - 的滚动位置UITableView- 但是直到像素级别,而不仅仅是最近的行.

当恢复滚动位置(使用scrollRectToVisible:animated:)时,我需要表视图中已经有足够的数据,否则scrollRectToVisible:animated:方法调用什么都不做(如果您将调用单独放在任何一个中viewDidLoad,则会发生这种情况,viewWillAppear或者viewDidAppear).

iphone uitableview ios

108
推荐指数
8
解决办法
6万
查看次数

如何在最后一个单元格上启动UITableView?

在Apple的消息应用程序中,当您单击通讯员的名称并切换到对话的表格视图(每个消息都有气球)时,表格会一直滚动到最后.没有动画或任何东西,它就在那里.

同样,在Tweetie 2中,当您加载推文视图时,它会显示在您上次查看它的位置.没有动画到达那里,它就在那里,好像上面没有任何单元格被加载.

这些应用程序如何做到这一点?他们scrollToRowAtIndexPath:atScrollPosition:animated:在桌面控制器的某个地方打电话吗?如果是这样,他们怎么知道要传递给atScrollPosition:谁?它叫什么方法?

iphone objective-c uitableview

26
推荐指数
5
解决办法
4万
查看次数

UITableView"beginUpdates"和UICollectionView"performBatchUpdates"是否具有相同的行为?

当我开始想知道UITableView中的"beginUpdates"和UICollectionView中的"performBatchUpdates"是否具有相同的行为时,我正在浏览文档.如果是这样,有没有理由,他们被称为不同,即使他们几乎是一样的东西?

谢谢!

uitableview ios uicollectionview

18
推荐指数
1
解决办法
1万
查看次数

自动滚动到具有特定值的单元格

我在这个表格视图中有一个数字列表.

在此输入图像描述

如您所见,数字会重复出现.让我们将一组重复的数字视为一.所以有1组,2组等等.

我想要做的是当应用程序启动时,我需要自动滚动到指定组的开始位置.在进一步解释之前,这是我的代码到目前为止.

import UIKit

class TableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate {

    private var scrollToTime = true
    private var items = [Int]()
    private var groupNoToScroll = 12

    override func viewDidLoad() {
        super.viewDidLoad()

        items = [1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8, 8, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17, 18, …
Run Code Online (Sandbox Code Playgroud)

scroll uitableview autoscroll ios swift

14
推荐指数
3
解决办法
3万
查看次数

仅在reloadData完成后调用函数

我有一个tableView并且需要tableView在重新加载后执行一个功能.我怎么知道是否reloadData已经完成?假设我有方法A填充tableView,一旦[tableView1 reloadData]完成,我想调用methodB.谁能帮我这个?我一直在寻找好几个小时......谢谢!

- (void) methodA
{

    NSString *URLa = [NSString stringWithFormat:@"http://www.website.com/page.php?
    v1=%@&v2=%@&v3=%@",v1, v2, v3];

    NSURL *url = [NSURL URLa];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    (void) [[NSURLConnection alloc] initWithRequest:request delegate:self];

    [tableView1 reloadData];

}
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c ios

0
推荐指数
1
解决办法
8783
查看次数