Size: a a a

iOS Developers — русскоговорящее сообщество

2020 May 29

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
как ты получил 0.8?
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Denis Kim
как ты получил 0.8?
из воздуха.

Значение от 0 до 1 вычисляется перед тем как попасть в ячейку.

1 - это не значит длина линии в первой ячейке, это МАКСИМУМ

А длину первой и последующих ВЫЧИСЛИ САМ.

Ячейка не должна знать что и где, и куда зависит.

Она отобразила то, что ей сказали.
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
вычисли сам, окей
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Спасибо
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
я так понял ты будешь считать ширину на листике, а не при лэйауте ячейки
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Denis Kim
я так понял ты будешь считать ширину на листике, а не при лэйауте ячейки
Конечно, мелом на доске
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Denis Kim
я так понял ты будешь считать ширину на листике, а не при лэйауте ячейки
Лейатуы же разных ячеек должны знать друг о друге, да?
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
слабенько слабенько
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Вовка
Лейатуы же разных ячеек должны знать друг о друге, да?
я этого не говорил
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
“я так понял ты будешь считать ширину на листике, а не при лэйауте ячейки"
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
я говорил о лэйауте конкретной ячейки
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Аа, удобно ты себе выдумал
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
я ничего не выдумывал, я говорю о фактах
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
ширина первой полоски зависит от длины текста, который расположен в первой ячейке
ширина остальных полосок зависит от ширины первой полоски
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Denis Kim
ширина первой полоски зависит от длины текста, который расположен в первой ячейке
ширина остальных полосок зависит от ширины первой полоски
ты выдумал себе эту зависимость
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
очевидно что это возможно сделать, но очевидно что это стремный вариант и можно было сделать куда лучше дизайн
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
ну мой опыт подсказывает что гистограммы именно так и работают, я тут вижу обычную гистограмму. а что видишь ты хз
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Ты видишь всё ок, но зависимость, описанная выше, лишняя. Можно в контексте отображения группы ячеек ее не приплетать.

Можно учесть ее в логике “расчёта”, но не в ячейках
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
У человека проблема другая совсем
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Michael Platonov
class RankingTableCell: UITableViewCell{
   
   
var ranking:Ranking?{
       
didSet{
           
guard let userImage = ranking?.userImage,let value = ranking?.value,let userPlaceString = ranking?.userPlace,let coeficient = ranking?.userCoeficient else {return}
           userImageView.image = UIImage(named: userImage)
           userValue.text = String(value)
           userPlace.text = userPlaceString
           progressView.frame = CGRect(x: 0, y: 0, width: coeficient, height: 30)
       }
   }
   
let userImageView = UIImageView(image: UIImage(), contentMode: .scaleAspectFit)
   
let userPlace = UILabel(text: "", font: UIFont.systemFont(ofSize: 13), textColor: .black, textAlignment: .left, numberOfLines: 0)
   
let progressView = UIView(backgroundColor: UIColor.blue)
   
let userValue = UILabel(text: "", font: UIFont.systemFont(ofSize: 13), textColor: .black, textAlignment: .left, numberOfLines: 0)
   
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
       
super.init(style: style, reuseIdentifier: reuseIdentifier)
       backgroundColor = UIColor(named: "backgroundColor")
       [userPlace,userImageView,progressView,userValue].forEach{contentView.addSubview($0)}
       userImageView.layer.cornerRadius = userImageView.frame.width / 2
       userPlace.anchor(centerX:
nil, centerY: contentView.centerYAnchor, top: nil, left: contentView.leftAnchor, bottom: nil, right: nil, paddingTop: 0, paddingLeft: 10, paddingBottom: 0, paddingRight: 0, width: 0, height: 0, enableInsets: false)
       userImageView.anchor(centerX:
nil, centerY: userPlace.centerYAnchor, top: nil, left: userPlace.rightAnchor, bottom: nil, right: nil, paddingTop: 0, paddingLeft: 10, paddingBottom: 0, paddingRight: 0, width: 30, height: 30, enableInsets: false)
       progressView.anchor(centerX:
nil, centerY: userPlace.centerYAnchor, top: nil, left: userImageView.rightAnchor, bottom: nil, right: nil, paddingTop: 0, paddingLeft: 10, paddingBottom: 0, paddingRight: 0, width: progressView.frame.width, height: 30, enableInsets: false)
       userValue.anchor(centerX:
nil, centerY: userPlace.centerYAnchor, top: nil, left: progressView.rightAnchor, bottom: nil, right: nil, paddingTop: 0, paddingLeft: 10, paddingBottom: 0, paddingRight: 0, width: 0, height: 30, enableInsets: false)
       
   }
   
required init?(coder aDecoder: NSCoder) {
       fatalError("init(coder:) has not been implemented")
   }

}



вот это мой код. UI пишу кодом. Передаю данные сверху, ширина высчитывается заранее, но вот делема - вью не обновляет ширину.
Тут вряд ли кто-то будет читать этот код.

Хотяб гистом на гитхаб скинь
источник