Значки LineMark Swiftui обрезаны по оси Y с данными даты на диаграмме SwiftUIIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Значки LineMark Swiftui обрезаны по оси Y с данными даты на диаграмме SwiftUI

Сообщение Anonymous »

Проблема с отображением PointMarks в SwiftUI Chart заключается в том, что когда я использую PointMark для отображения нескольких значков точек, а ось Y представляет данные типа даты, значки не полностью видны. Значок самой верхней точки обрезан, половина его не отображается.
Результат выполнения
Чтобы решить эту проблему, я попробовал добавить диапазон по оси Y, вычислив минимальное и максимальное значения в коде с помощью .chartYAxisRange(min:adjustMinValue, max:adjustMaxValue), но он продолжает выдавать ошибку: «Компилятор не может проверить тип этого выражения в разумных пределах». раз; попробуйте разбить выражение на отдельные подвыражения, я закомментировал этот раздел кода.
Если кто-нибудь может помочь разобраться в этой проблеме, я был бы очень признателен.

Код: Выделить всё

import Foundation
import SwiftUI
import Charts

func convertFullDateToHMDate(_ fullDateString: String) -> Date {
let fullFormatter = DateFormatter()
fullFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

let fullDate = fullFormatter.date(from: fullDateString)!

let calendar = Calendar.current

let components = calendar.dateComponents([.hour, .minute ,.second], from: fullDate)

return calendar.date(from: components)!
}

func formatDateToHMS(_ date: Date) -> String {
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm:ss"
return formatter.string(from: date)
}

struct TemperatureData: Identifiable ,Codable {
var id = UUID()
var day: String
var detailDay: String // detail time
var temperature: Double = 0.0
}

struct PointChartView: View {
var lineChartViewData: LineChartViewData
@State private var selectedWeek: Int = 0
var body: some View {
VStack(alignment: .leading, spacing: 16) {
//            let (minDate, maxDate) = lineChartViewData.getMinMaxDate()
TabView(selection: $selectedWeek) {
ForEach(0..  [[TemperatureData]] {
var twoDimensionalArray: [[TemperatureData]] = []
var subarray: [TemperatureData] = []
for element in self.dataArray {
subarray.append(element)
if subarray.count == 7 {
twoDimensionalArray.append(subarray)
subarray = []
}
}
if(!subarray.isEmpty) {
twoDimensionalArray.append(subarray)
}
return twoDimensionalArray
}

func getMinMaxDate() -> (min: Date, max: Date) {
let values = dataArray.map { convertFullDateToHMDate($0.detailDay) }
let minValue = values.min() ?? Date()
let maxValue = values.max() ?? Date()
let padding: TimeInterval = 60 * 10
let adjustedMinValue = minValue.addingTimeInterval(-padding)
let adjustedMaxValue = maxValue.addingTimeInterval(padding)

return (adjustedMinValue, adjustedMaxValue)
}
}

struct PointChartView_Previews: PreviewProvider {
static var previews: some View {

let temperatureData: [TemperatureData] = [
TemperatureData(day: "9-9", detailDay: "2024-12-01 10:31:00"),
TemperatureData(day: "9-9", detailDay: "2024-12-01 10:32:00"),
TemperatureData(day: "9-9", detailDay: "2024-12-01 10:33:00"),
]
PointChartView(lineChartViewData:LineChartViewData( imageName: "IconPoop" ,isArtificial:false,dataArray: temperatureData))

}
}



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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Значки LineMark Swiftui обрезаны по оси Y с данными даты на диаграмме SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Углы обрезаны в руководстве по SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Углы обрезаны в руководстве по SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Смещение оси Y на диаграмме в диаграммах SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Смещение оси Y на диаграмме в диаграммах SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

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