Мне нравится, как Крунослав Захер реализует ActivityIndicator
в проекте RxExample
в репозитории RxSwift.
Использование:
let activityIndicator = ActivityIndicator()
let state = githubSearchRepositories(
searchText: searchBar.rx.text.orEmpty.changed.asSignal().throttle(0.3),
loadNextPageTrigger: loadNextPageTrigger,
performSearch: { URL in
GitHubSearchRepositoriesAPI.sharedAPI.loadSearchURL(URL)
.trackActivity(activityIndicator)
})
[119 ] Таким образом, в вашем случае вы можете реализовать другую наблюдаемую информацию, аналогичную ActivityIndicator
let operationProgress = OperationProgress
Я не знаю, подходит ли это вашей ситуации, но, по крайней мере, она отделяет вашу логику прогресса от наблюдаемой операции. [ 1110]
Смотрите на InlineUIContainer
и BlockUIContainer
классы. Они позволяют UIElement
s, чтобы быть встроенным в содержание потока, как FlowDocument
или TextBlock
.
Вот пример Кнопки, встроенной в a TextBlock
:
<TextBlock>
Some inline
<InlineUIContainer>
<Button Content="Hi" Click="Button_Click" />
</InlineUIContainer>
inside the text.
</TextBlock>