diff --git a/Sources/Earthquake Network/Controllers/Seismic Networks/Cells/SeismicNetworkTableViewCell.swift b/Sources/Earthquake Network/Controllers/Seismic Networks/Cells/SeismicNetworkTableViewCell.swift index 782cf6f..0572932 100644 --- a/Sources/Earthquake Network/Controllers/Seismic Networks/Cells/SeismicNetworkTableViewCell.swift +++ b/Sources/Earthquake Network/Controllers/Seismic Networks/Cells/SeismicNetworkTableViewCell.swift @@ -75,6 +75,17 @@ class SeismicNetworkTableViewCell: UITableViewCell { view.layer.shadowRadius = 2 return view }() + + private lazy var gradientView: UIImageView = { + // Per gestire il gradiente, utilizziamo una image view in cui inseriamo un'immagine + // creata ad-hoc con il gradiente desiderato. + // Le prove fatte utilizzando una view normale sono fallite perchè al momento di + // disegnare la view non abbiamo le misure corrette. + let view = UIImageView(frame: .zero) + view.translatesAutoresizingMaskIntoConstraints = false + view.contentMode = .scaleAspectFill + return view + }() private lazy var placeLabel: UILabel = { let label = UILabel() @@ -195,7 +206,11 @@ class SeismicNetworkTableViewCell: UITableViewCell { containerView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -8.0).isActive = true containerView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 8.0).isActive = true containerView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -4.0).isActive = true + containerView.clipsToBounds = true + containerView.addSubview(gradientView) + gradientView.constraint(to: containerView) + // this variable is used to keep track of the previous view, in order to attach proper constraints var previousView: UIView = containerView @@ -377,8 +392,12 @@ class SeismicNetworkTableViewCell: UITableViewCell { let viewModel = SeismicNetworkViewModel(seismic: seismic) - containerView.backgroundColor = colors?.startColor - + if let colors = colors { + gradientView.image = .gradient(from: colors.startColor, to: colors.endColor, with: .init(origin: .zero, size: .init(width: 400, height: 300))) + } else { + gradientView.image = nil + } + // update seismic data placeLabel.text = viewModel.place networkLabel.text = String(format: NSLocalizedString("official_provider", comment: ""), viewModel.network)