Я думал, что это будет немного легче, но я считаю, что я в тупике. Иметь простой tableView с ячейкой. В ячейке находится UIView (вместе с несколькими другими UILabels), который я хочу изменить ширину на основе значений в той же ячейке (indexPath.row) - простой эффект гистограммы из-за отсутствия лучшего описания.
Пробовал различные итерации использования cell.view.frame ... для доступа к этим атрибутам. Я понимаю, что свойство .width доступно только для получения. Также испробовал много вариантов атрибутов .constraints и не смог получить тот простой эффект, который мне нужен.
Код очень простой шаблон tableView код:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "MoreTidesCell", for: indexPath) as? MoreTidesCell {
let formatter = DateFormatter()
formatter.dateFormat = "MMM dd"
let prediction = predictionsHighLow[indexPath.row]
cell.tideDateLabel.text = formatter.string(from: prediction.date)
cell.lowestTideLabel.text = String(prediction.lowestLow.rounder(toPlaces: 1))
cell.highestTideLabel.text = String(prediction.highestHigh.rounder(toPlaces: 1))
// here would like to have something like...
// cell.tideSpanBar.frame = CGRect(x: myX, y: myY, width: myWidth, height: myHeight)
// based on the values of lowest tide and highest tide.
return cell
} else {
return MoreTidesCell()
}
}
Вот простой пример того, как он будет выглядеть (конечно, с синей полосой, меняющейся по ширине).
https://www.dropbox.com/s/cti2pjpz944q8to/IMG_1840.jpeg
Я понимаю, что в игре есть ограничения, поэтому я предполагаю, что решение должно быть более связанным с ограничениями, чем .width. Просто ищу надежную точку отсчета, чтобы начать строить это. Одна из единственных проблем в моей короткой кривой обучения Swift, которая полностью закрыла меня. Цени любую помощь, которую я могу получить.