Предотвратить блокирование функции пользовательского интерфейсаIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Предотвратить блокирование функции пользовательского интерфейса

Сообщение Anonymous »

.onScrollVisibilityChange { isVisible in
if isVisible {
Task {
saveIdsWatchedTime(postTime: meme.time)
}
}
}

onscrollvisibilitychange прикреплен к элементу LazyVstack, и каждый раз, когда вызывается SaveIdswatchedtime, пользовательский интерфейс заблокирован и прокрутка отстает.
Почему это когда я использую задачу, которая в основном является асинхронным? p>
Это функция: < /p>
func saveIdsWatchedTime(postTime: Int) {

if(watchedTimeChecked){
return
}
watchedTimeChecked = true

if((gal == "latest" || gal == "top") && !endOfMemesReached && postTime < lastTimeChecked){

var endString = ""
var endArray = [String]()

let newestMemeViewed = Int(memesWatchedTimeRanges[0].components(separatedBy: ",")[0])
var oldestMemeViewed = Int(memesWatchedTimeRanges[0].components(separatedBy: ",")[1])

if(oldestMemeViewed! > postTime){
memesWatchedTimeRanges[0] = String(newestMemeViewed!) + "," + String(postTime)
oldestMemeViewed = postTime
}

var firstPassed = false
for bla in memesWatchedTimeRanges{

let newestTimePastScroll = Int(bla.components(separatedBy: ",")[0])
let oldestTimePastScroll = Int(bla.components(separatedBy: ",")[1])

if(!firstPassed){

firstPassed = true

endArray.append(bla)
endString += String(newestTimePastScroll!) + "," + String(oldestTimePastScroll!) + "|"

}else{
if(newestMemeViewed! > newestTimePastScroll! && oldestMemeViewed! < oldestTimePastScroll!){

}else{
endArray.append(bla)
endString += String(newestTimePastScroll!) + "," + String(oldestTimePastScroll!) + "|"
}
}
}

if(endString.onlyLastCharacters(1) == "|"){
endString = String(endString.dropLast(1))
}

memesWatchedTimeRanges = endArray

if(gal == "latest"){
memesWatchedTimeRangesString = endString // AppStorage, between 25 and 100 characters long
}else{
memesWatchedTimeRangesTopString = endString // AppStorage, between 25 and 100 characters long
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... ing-the-ui
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»