Я создал класс UIView, и в этом классе я создаю табличное представление и кнопку.
Я бы хотел настроить вес этих двух изображений, как в Android.
Кнопка сделана слишком тяжело. Я хочу присвоить ей вес 1, а для таблицы - 2
.
Вот фото:
Вот мой код:
class ChatBotCheckList: UIView {
var tableView: UITableView = {
let tableView = UITableView()
tableView.register(ChatBotCheckListCell.self, forCellReuseIdentifier: "MyCell")
tableView.translatesAutoresizingMaskIntoConstraints = false
return tableView
}()
let doneButton: FilledButton = {
let doneButton = FilledButton(backgroundColor: .fittoOnboardingGradientStart, textColor: .white, cornerRadius: 5.0, shadowColor: .fittoOnboardingGradientEnd)
doneButton.translatesAutoresizingMaskIntoConstraints = false
doneButton.titleLabel?.font = .boldSystemFont(ofSize: 17.0)
doneButton.setTitle("Done", for: .normal)
return doneButton
}()
let stackView: UIStackView = {
let stackView = UIStackView()
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .fill
stackView.distribution = .fillEqually
stackView.spacing = 10.0
return stackView
}()
var answers = [ChatBotAnswer]() {
didSet {
setupStackView()
tableView.reloadData()
}
}
override init(frame: CGRect) {
super.init(frame: frame)
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
// MARK: Lifecycle
override func layoutSubviews() {
super.layoutSubviews()
}
}
// MARK: - Setup UI
extension ChatBotCheckList {
fileprivate func setupUI() {
addSubview(stackView)
let topAnchorPadding: CGFloat = answers.count <= 2 ? 50.0 : 0
stackView.anchor(top: topAnchor, leading: leadingAnchor, bottom: bottomAnchor, trailing: trailingAnchor, padding: UIEdgeInsets(top: topAnchorPadding, left: 28.0, bottom: 0, right: 28.0), size: .zero)
}
private func setupDoneButton() {
doneButton.alpha = 0
//doneButton.addTarget(self, action: #selector(doneButtonTapped(_:)), for: .touchUpInside)
}
private func setupStackView() {
addSubview(stackView)
stackView.anchor(top: topAnchor, leading: leadingAnchor, bottom: bottomAnchor, trailing: trailingAnchor, padding: UIEdgeInsets(top: 90.0, left: 28.0, bottom: 20.0, right: 28.0))
stackView.addArrangedSubview(tableView)
stackView.addArrangedSubview(doneButton)
setupUI()
}
}
// MARK: - Setup Table View
extension ChatBotCheckList: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return answers.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath)
cell.textLabel!.text = "\(answers[indexPath.row].message)"
return cell
}
}