Во -первых, я совершенно новичок в Swiftui. У меня есть проблема с аннотацией бармаров. Аннотация покрыта следующими бармарами. Есть ли способ предотвратить это? < /P>
import Foundation
import SwiftUI
import Charts
struct WaterConsumptionChart: View {
@ObservedObject var viewModel: ConsumptionDataViewModel
@State private var selectedItem: ConsumptionData?
@State private var showTooltip: Bool = false
private var gradientColors = [Color.primarySwiftUI.opacity(0.8),
Color.groheLink.opacity(0.8)]
var body: some View {
VStack {
Chart(viewModel.data) { item in
BarMark(
x: .value("", item.text),
y: .value("consumption", item.consumption ?? 0),
width: .automatic
)
.foregroundStyle(LinearGradient(
gradient: Gradient(colors: gradientColors),
startPoint: .top,
endPoint: .bottom
))
.cornerRadius(4)
.annotation(position: .top, alignment: .center) {
let show = ((selectedItem?.text ?? "") == item.text) && ((item.consumption ?? 0) > 0)
TooltipView(value: "\(selectedItem?.text ?? "") • \(selectedItem?.consumption ?? 0)l")
.opacity(show ? 1 : 0)
.offset(y: -2)
}
if let average = viewModel.average, average > 0 {
RuleMark(y: .value("", average))
.foregroundStyle(.primarySwiftUI)
.lineStyle(.init(lineWidth: 1))
} else {
RuleMark(y: .value("", 0.0))
.foregroundStyle(.primarySwiftUI)
.lineStyle(.init(lineWidth: 0))
}
}
.padding([.leading, .trailing], 16)
.chartXAxis {
AxisMarks(values: .automatic(minimumStride: 3, desiredCount: 7)) { value in
let period = viewModel.period?.period
let modulo = period == .day ? 4 : 5
let entry = Int(value.as(String.self) ?? "") ?? 0
if value.count 0 { UIImpactFeedbackGenerator(style: .light).impactOccurred() }
self.selectedItem = dataItem
} else {
self.selectedItem = nil
}
})
}
}
}
}
}
< /code>
изображение диаграммы < /p>
Я попытался экспериментировать с .zindex (значение: двойное), но, к сожалению, я не мог решить проблему. Мне также нужна совместимость с iOS 16, а .zindex доступен только в iOS 17. У кого -нибудь есть идея?
Подробнее здесь: https://stackoverflow.com/questions/794 ... g-barmarks
Свифтуи диаграмма Barmark Annotation, покрываемые следующими бармарами ⇐ IOS
Программируем под IOS
1739452713
Anonymous
Во -первых, я совершенно новичок в Swiftui. У меня есть проблема с аннотацией бармаров. Аннотация покрыта следующими бармарами. Есть ли способ предотвратить это? < /P>
import Foundation
import SwiftUI
import Charts
struct WaterConsumptionChart: View {
@ObservedObject var viewModel: ConsumptionDataViewModel
@State private var selectedItem: ConsumptionData?
@State private var showTooltip: Bool = false
private var gradientColors = [Color.primarySwiftUI.opacity(0.8),
Color.groheLink.opacity(0.8)]
var body: some View {
VStack {
Chart(viewModel.data) { item in
BarMark(
x: .value("", item.text),
y: .value("consumption", item.consumption ?? 0),
width: .automatic
)
.foregroundStyle(LinearGradient(
gradient: Gradient(colors: gradientColors),
startPoint: .top,
endPoint: .bottom
))
.cornerRadius(4)
.annotation(position: .top, alignment: .center) {
let show = ((selectedItem?.text ?? "") == item.text) && ((item.consumption ?? 0) > 0)
TooltipView(value: "\(selectedItem?.text ?? "") • \(selectedItem?.consumption ?? 0)l")
.opacity(show ? 1 : 0)
.offset(y: -2)
}
if let average = viewModel.average, average > 0 {
RuleMark(y: .value("", average))
.foregroundStyle(.primarySwiftUI)
.lineStyle(.init(lineWidth: 1))
} else {
RuleMark(y: .value("", 0.0))
.foregroundStyle(.primarySwiftUI)
.lineStyle(.init(lineWidth: 0))
}
}
.padding([.leading, .trailing], 16)
.chartXAxis {
AxisMarks(values: .automatic(minimumStride: 3, desiredCount: 7)) { value in
let period = viewModel.period?.period
let modulo = period == .day ? 4 : 5
let entry = Int(value.as(String.self) ?? "") ?? 0
if value.count 0 { UIImpactFeedbackGenerator(style: .light).impactOccurred() }
self.selectedItem = dataItem
} else {
self.selectedItem = nil
}
})
}
}
}
}
}
< /code>
изображение диаграммы < /p>
Я попытался экспериментировать с .zindex (значение: двойное), но, к сожалению, я не мог решить проблему. Мне также нужна совместимость с iOS 16, а .zindex доступен только в iOS 17. У кого -нибудь есть идея?
Подробнее здесь: [url]https://stackoverflow.com/questions/79436257/swiftui-chart-barmark-annotation-covered-by-following-barmarks[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия