Size: a a a

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

2020 May 29

DK

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

В

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

DK

Denis Kim 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 пишу кодом. Передаю данные сверху, ширина высчитывается заранее, но вот делема - вью не обновляет ширину.
как ты при верстке кодом обходишься без стеквью? сильно проще было бы
источник

В

Вовка 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 пишу кодом. Передаю данные сверху, ширина высчитывается заранее, но вот делема - вью не обновляет ширину.
Может ты про высоту?
источник

DK

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

MP

Michael Platonov in iOS Developers — русскоговорящее сообщество
@protuberian как-то привык, но спасибо за замечание)
источник

DK

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

DK

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

В

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


Это просто задача, которую нужно решить если всё всех устраивает.

Если такой дизайн - значит такой. Нужно просто решить задачу.
источник

В

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

В

Вовка in iOS Developers — русскоговорящее сообщество
У Майкла, или Михаэля, другой подход)
источник

DK

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

В

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

DK

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

DK

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

MP

Michael Platonov in iOS Developers — русскоговорящее сообщество
источник

DK

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

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
я офигеваю от этого кода =)
источник

MP

Michael Platonov in iOS Developers — русскоговорящее сообщество
@protuberian Если честно, я не имею большого опыта в разработке таких вещей. Сказали- я делаю, а потом уже , когда сделаю, становлюсь опытнее и могу уже размышлять насколько это тяжело
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
progressView.frame.width
источник