相关疑难解决方法(0)

sqlite3_prepare_v2崩溃 - 已经运行过上一个查询

我写了一个触发的查询viewWillAppear.通过快速导航回到该屏幕导致崩溃sqlite3_prepare_v2.
我假设的是崩溃是由于之前的查询没有最终确定.
我正在调用数据库操作,dispatch_async因为我首先更新远程数据,然后将其保存在数据库中.
代码如下所示:

dispatch_queue_t myQueue = dispatch_queue_create("My Queue",NULL);

                 dispatch_async(myQueue, ^{
                    [self parseActivityResponse:data];  // Sqlite operation here
                     dispatch_async(dispatch_get_main_queue(), ^{
                         // Update the UI
                         if(loaderImageview)
                            [loaderImageview removeFromSuperview];
                         [tableActivities reloadData];

                     });
                 }); 
Run Code Online (Sandbox Code Playgroud)

查询如下:

- (NSMutableArray*)GetAllInvitations:(NSString*)ActivityId
{
    NSMutableArray *arrInvitations = [[NSMutableArray alloc]init];

    sqlite3_stmt *statement = nil;

    @try {
        const char *sql = "SELECT * FROM Invitation where ActivityId = ?";

        if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {

            sqlite3_bind_text(statement, 1, [ActivityId UTF8String], -1, SQLITE_TRANSIENT);
            while (sqlite3_step(statement) …
Run Code Online (Sandbox Code Playgroud)

sqlite grand-central-dispatch ios

12
推荐指数
1
解决办法
1200
查看次数

怎么知道reloadData()完成了他的任务?

我想滚动到给定的索引(self.boldRowPath),但是当我scrollToRow之前执行调试时reloadData().

怎么知道reloadData已经完成了?

func getAllTimeEvent()  {
    self.arrAllTimeEvent = ModelManager.getInstance().getAllTimeEvent(from: self.apportmentDateFrom, to: self.apportmentDateTo)
    self.tblTimeEvent.reloadData()
    self.tblTimeEvent.scrollToRow(at: self.boldRowPath ?? [0,0], at: .top, animated: true)
 }
Run Code Online (Sandbox Code Playgroud)

任何帮助都感激不尽.

uitableview reloaddata ios swift

11
推荐指数
2
解决办法
9374
查看次数

是否有可能在UITableView重新加载完成后获得回调?

我正在我的表视图中重新加载一些单元格.重新加载完成后,我想滚动以便它们可见.我知道scrollToRowAtIndexPath:atScrollPosition:方法.但是我需要在重新加载完成后调用它,因为重载将改变行高.

以下是一些相关问题,但它们并没有完全回答我的问题.
UITableView,重新加载时滚动到底部?
如何在最后一个单元格上启动UITableView

编辑 - 我的重新加载不插入或删除任何行.相反,我正在重新加载一个或多个单元格以反映更新的信息.

iphone animation scroll uitableview ios

9
推荐指数
1
解决办法
8029
查看次数

启动 UITableView 滚动到底部

如何开始UITableView滚动到最后一个单元格?

  • 没有动画
  • 不是在视图出现之后
  • 甚至在表视图被添加为子视图之后

只是有一个平原UITableView(frame: CGRectZero, style: UITableViewStyle.Plain),当出现在屏幕上时,将开始一直滚动到底部。

我试过了:

// 1
reloadData()
scrollToRowAtIndexPath(
    NSIndexPath(forItem: dataArray.count-1, inSection: 0),
    atScrollPosition: .Top, animated: false
)

// 2
reloadData()
var contentOffset = self.contentOffset
contentOffset.y = CGFloat.max
setContentOffset(contentOffset, animated: false)
Run Code Online (Sandbox Code Playgroud)

在 tableView 的init方法上(在我的子类中)

我也尝试过经典的CGAffineTransformMakeScale(1,-1)hack,但这会使我的单元格粘在底部,我希望它们卡在顶部(但滚动到底部)。(只有当我有几个单元格时才相关,当它们没有填满整个UITableView空间时)

编辑:另一个细节,我正在使用动态单元格UITableViewAutomaticDimension

iphone uitableview ios swift

6
推荐指数
2
解决办法
3888
查看次数

UITableView重新加载节时内容插入更改

我有一个可扩展的UITableView。当用户点击标题时,相关的单元格将显示一个动画(RowAnimation.Fade),然后UITableView滚动到该标题(展开的标题)。当用户再次点击该标题时,它将折叠。

我要实现的目标:我需要具有标题和单元格的可扩展UITableView。用户点击标题时,需要使用来打开单元格RowAnimation.Fade,然后滚动到该标题。

奖励:如果在用户点击标题时可以使箭头动画化,那还是很棒的,但是我认为这会引起另一个错误,因为我们在同一线程(主线程)上运行了很多动画

我的问题是,当用户点击标题时,tableView内容插入项将发生更改,整个标题将变为负Y位置。因此发生了奇怪的动画。(例如,标题看起来在单元格的中心)但是,动画结束后,一切看起来都正确。

func toggleSection(header: DistrictTableViewHeader, section: Int) {
self.selectedHeaderIndex = section
self.cities[section].isCollapsed = !self.cities[section].isCollapsed
let contentOffset = self.tableView.contentOffset
self.tableView.reloadSections(IndexSet(integer: section), with: UITableView.RowAnimation.fade)
self.tableView.scrollToRow(at: IndexPath(row: NSNotFound, section: section) /* you can pass NSNotFound to scroll to the top of the section even if that section has 0 rows */, at: UITableView.ScrollPosition.top, animated: true)
}
Run Code Online (Sandbox Code Playgroud)

另外:我如下设置标题和单元格的高度。

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 1
}
func tableView(_ …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift

4
推荐指数
1
解决办法
555
查看次数

scrollToRowAtIndexPath始终从顶部滚动而不是从当前偏移滚动

在我的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)
}
Run Code Online (Sandbox Code Playgroud)

但是这没有按预期工作,因为ALWAYS表从顶部滚动,即使我在第二个单元格上也是如此.如何解决这个问题?

ios swift uitableviewautomaticdimension

3
推荐指数
1
解决办法
1391
查看次数