Use `List` for sliders

This commit is contained in:
CypherPoet 2019-12-04 04:21:32 -06:00
parent e508591135
commit 99325cec91
3 changed files with 14 additions and 20 deletions

View File

@ -60,7 +60,6 @@ extension ImageFilteringContainerViewModel {
private var isShowingFilteringViewPublisher: AnyPublisher<Bool, Never> {
$currentInputImage
.print("isShowingFilteringViewPublisher")
.map { $0 != nil }
.eraseToAnyPublisher()
}

View File

@ -59,7 +59,6 @@ extension ImageFilteringView {
onSelect: self.newFilterSelected(_:)
)
}
.navigationBarTitle(Text(""), displayMode: .inline)
.navigationBarItems(leading: swapFilterButton, trailing: saveButton)
}
}
@ -95,25 +94,21 @@ extension ImageFilteringView {
extension ImageFilteringView {
private var controls: some View {
// List {
VStack {
List {
ForEach(viewModel.activeSliders, id: \.0) { slider in
VStack(spacing: 22.0) {
VStack(spacing: 2.0) {
Text(slider.displayName)
.font(.headline)
.fontWeight(.bold)
// Inspired by this solution for dynamically rendering controls inside
// of a `ForEach`: https://stackoverflow.com/a/56759097/8859365
FilterSlider(
viewModel: slider.viewModel,
labelText: slider.displayName
)
}
VStack(spacing: 2.0) {
Text(slider.displayName)
.font(.headline)
.fontWeight(.bold)
Divider()
// Inspired by this solution for dynamically rendering controls inside
// of a `ForEach`: https://stackoverflow.com/a/56759097/8859365
FilterSlider(
viewModel: slider.viewModel,
labelText: slider.displayName
)
}
.padding(.vertical)
}
}
}
@ -171,7 +166,7 @@ struct ImageFilteringView_Previews: PreviewProvider {
),
onSave: { _ in }
)
.environmentObject(SampleStore.default)
.environmentObject(SampleStore.default)
}
}
}

View File

@ -47,7 +47,7 @@ final class ImageFilteringViewModel: ObservableObject {
// MARK: - Init
init(inputImage: UIImage? = nil) {
self.inputImage = inputImage
self.currentFilter = .sepiaTone()
self.currentFilter = CIFilter(name: CoreImageFilter.sepiaTone.ciFilterName)!
setupSubscribers()
}