diff --git a/Sources/Earthquake Network/Controllers/Seismic Networks/SeismicNetworkScrollIndicatorView.swift b/Sources/Earthquake Network/Controllers/Seismic Networks/SeismicNetworkScrollIndicatorView.swift index 04f6c65..1c277f2 100644 --- a/Sources/Earthquake Network/Controllers/Seismic Networks/SeismicNetworkScrollIndicatorView.swift +++ b/Sources/Earthquake Network/Controllers/Seismic Networks/SeismicNetworkScrollIndicatorView.swift @@ -47,7 +47,7 @@ class SeismicNetworkScrollIndicatorView: UIView { seismics.enumerated().forEach { index, seismic in // Disegniamo un rettangolo per ogni sisma, quello evidenziato deve avere un contorno rosso. // Ci sono situazioni in cui ci sono molti sismi da mostrare, quindi in quel caso facciamo alcune modifiche: - // - usiamo un'altezza minma per il sisma evidenziato + // - usiamo un'altezza minima per il sisma evidenziato // - per il sisma evidenziato, anche il contenuto è rosso (e non solo il bordo) // - negli altri sismi, non mostriamo il bordo @@ -74,9 +74,22 @@ class SeismicNetworkScrollIndicatorView: UIView { // Dobbiamo eventualmente calcolare un offset aggiuntivo, // perchè il sisma evidenziato ha un'altezza maggiore (se i rettangoli sono piccoli) let rectHeight = rectStandardHeight - let offset: CGFloat = (index > highlightIndex && smallRectangles) ? rectHighlightedMinHeight : 0 - let yPosition = CGFloat(index) * rectHeight + offset - let rectangle = CGRect(x: 0, y: yPosition, width: rectStandardWidth, height: rectHeight) + + var offset: CGFloat = 0 + if index > highlightIndex && smallRectangles { + // calcoliamo l'offset prima del rettangolo evidenziato + let preOffset = CGFloat(highlightIndex - 1) * rectStandardHeight + // offset diverso dovuto all'altezza diversa del rettangolo evidenziato + let highlightOffset = rectHighlightedMinHeight + // calcoliamo l'offset tra il rettangolo evidenziato e quello corrente + let postOffset = CGFloat(index - highlightIndex) * rectStandardHeight + offset = preOffset + highlightOffset + postOffset + } else { + // siamo prima del rettangolo evidenziato, non abbiamo calcoli da fare + offset = CGFloat(index) * rectHeight + } + + let rectangle = CGRect(x: 0, y: offset, width: rectStandardWidth, height: rectHeight) let fillColor = seismic.colors.textColor.withAlphaComponent(0.3) context?.setFillColor(fillColor.cgColor) @@ -87,8 +100,7 @@ class SeismicNetworkScrollIndicatorView: UIView { let borderWidth: CGFloat = 0.5 context?.setStrokeColor(AppTheme.Colors.gray.cgColor) context?.setLineWidth(borderWidth) // Spessore del bordo - context?.stroke(rectangle) // Evita che il bordo venga tagliato - + context?.stroke(rectangle) } } }