如何从更新contentSize中停止UITableView

时间:2015-05-27 12:12:01

标签: ios objective-c xcode uitableview

reloadData被调用时,似乎UITableView会自动重新计算其contentSize,以便内容适合(请参阅Xcode中的调用堆栈的屏幕截图)。我怎么阻止它?

我想让contentSize在某些情况下大于其内容,当表格被部分遮盖时。但重新加载后,contentSize的任何更改都会消失。

enter image description here

3 个答案:

答案 0 :(得分:1)

我使用contentInset来解决它,就像这样:

float extraSpaceAtTheBottom = 50;
self.tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, extraSpaceAtTheBottom, 0.0);

答案 1 :(得分:1)

您需要在每次“reloadData”调用后更改UITableView的contentSize,您可以这样做:

String SELECT_ALL_BY_TITLE = "SELECT * FROM " + TABLE_NAME + " WHERE " + COLUMN_TITLE + "=? ;";

 public boolean ifAlreadyExists(String title) {

    if (database != null && database.isOpen()) {
        Cursor cursor = database.rawQuery(SELECT_ALL_BY_TITLE, new String[] { title});
        if (cursor != null && cursor.getCount() > 0) {
            cursor.close();
            return true;
        } else {
            cursor.close();
            return false;
        }
    }
    Log.e(TAG, "Database not open");
    return false;
}

答案 2 :(得分:0)

在tableView上设置高度的布局约束。