UIScrollView - показ полосы прокрутки

Удалось найти гораздо лучшее решение проблемы, не пробираясь сквозь стол. Я думал, что опубликую решение здесь для любого, кто может столкнуться с подобной проблемой.

Требование для хранимой процедуры состояло в том, чтобы проходить по большой таблице по одной строке за раз, объединяя содержимое каждого столбца в строке в строку и назначая ее переменной. Каждые N строк этой переменной будут записаны в отдельную таблицу. Ранее я использовал курсор для этого, но разработчик в нашей команде обнаружил гораздо более быстрый способ, используя предложение WITH.

INSERT INTO <MY_SCHEMA>.<MY_TABLE_THAT_WILL_CONTAIN_THE_CONCATENATED_VALUES_OF_EVERY_N_ROWS>
WITH 
    CONCATENATE_ROWS AS (
            SELECT RANK() OVER (ORDER BY <PRIMARY_KEY_COLUMN>) AS ROWID, <PRIMARY_KEY_COLUMN>, <COLUMN_1> || '' || <COLUMN_2> || '' || ... <COLUMN_N> AS ROW_DETAIL
            FROM <MY_TABLE_THAT_I_AM_QUERYING> 
            ORDER BY <PRIMARY_KEY_COLUMN>
    ), 
    GROUPED_ROWS AS (
            SELECT (((CONCATENATE_ROWS.ROWID-1)/ <number of rows I want to concatenate, e.g.: 10>)+1) AS GROUPID, CAST(LIST(CONCATENATE_ROWS.ROW_DETAIL, '' ORDER BY <PRIMARY_KEY_COLUMN>) AS VARCHAR(4000)) AS CONCAT_DETAILS
             FROM CONCATENATE_ROWS 
             GROUP BY (((CONCAT_ORDERS.ROWID-1)/ <number of rows I want to concatenate, e.g.: 10>)+1)
    )
SELECT <Whatever columns I want to insert into <MY_TABLE_THAT_WILL_CONTAIN_THE_CONCATENATED_VALUES_OF_EVERY_N_ROWS>> 
FROM GROUPED_ROWS;
55
задан Andrey Zverev 22 December 2011 в 06:33
поделиться

3 ответа

Нет, вы не можете сделать так, чтобы они отображались всегда, но вы можете заставить их временно мигать.

[myScrollView flashScrollIndicators];

Это индикаторы прокрутки, а не полосы прокрутки . Вы не можете использовать их для прокрутки.

83
ответ дан 7 November 2019 в 07:21
поделиться

Быстро 3 +

1) Таймер

var timerForShowScrollIndicator: Timer?

2) Методы

/// Show always scroll indicator in table view
func showScrollIndicatorsInContacts() {
    UIView.animate(withDuration: 0.001) {
        self.tableView.flashScrollIndicators()
    }
}

/// Start timer for always show scroll indicator in table view
func startTimerForShowScrollIndicator() {
    self.timerForShowScrollIndicator = Timer.scheduledTimer(timeInterval: 0.3, target: self, selector: #selector(self.showScrollIndicatorsInContacts), userInfo: nil, repeats: true)
}

/// Stop timer for always show scroll indicator in table view
func stopTimerForShowScrollIndicator() {
    self.timerForShowScrollIndicator?.invalidate()
    self.timerForShowScrollIndicator = nil
}

3) Использование

startTimerForShowScrollIndicator в viewDidAppear

stopTimerForShowScrollIndicator в viewDidDisappear

0
ответ дан 7 November 2019 в 07:21
поделиться

Насколько я знаю, это невозможно. Единственный вызов API, который управляет отображением индикатора прокрутки, - это showsVerticalScrollIndicator , и он может только полностью отключить отображение индикатора.

Вы можете flashScrollIndicators , когда появится представление, чтобы пользователь знал, где в режиме прокрутки они есть.

4
ответ дан 7 November 2019 в 07:21
поделиться