SettingsImageTableViewCell.swift 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // SettingsImageTableViewCell.swift
  3. // Loop
  4. //
  5. // Copyright © 2018 LoopKit Authors. All rights reserved.
  6. //
  7. import UIKit
  8. class SettingsImageTableViewCell: UITableViewCell {
  9. override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  10. super.init(style: .default, reuseIdentifier: reuseIdentifier)
  11. setup()
  12. }
  13. required init?(coder aDecoder: NSCoder) {
  14. super.init(coder: aDecoder)
  15. setup()
  16. }
  17. private func setup() {
  18. guard let textLabel = textLabel, let imageView = imageView else {
  19. return
  20. }
  21. textLabel.adjustsFontForContentSizeCategory = true
  22. textLabel.font = UIFont.preferredFont(forTextStyle: .body)
  23. textLabel.translatesAutoresizingMaskIntoConstraints = false
  24. imageView.translatesAutoresizingMaskIntoConstraints = false
  25. let parent = contentView.layoutMarginsGuide
  26. NSLayoutConstraint.activate([
  27. imageView.leadingAnchor.constraint(equalTo: parent.leadingAnchor),
  28. imageView.topAnchor.constraint(greaterThanOrEqualTo: parent.topAnchor),
  29. parent.bottomAnchor.constraint(greaterThanOrEqualTo: imageView.bottomAnchor),
  30. imageView.centerYAnchor.constraint(equalTo: parent.centerYAnchor),
  31. textLabel.leadingAnchor.constraint(equalToSystemSpacingAfter: imageView.trailingAnchor, multiplier: 2),
  32. textLabel.topAnchor.constraint(greaterThanOrEqualTo: parent.topAnchor),
  33. parent.bottomAnchor.constraint(greaterThanOrEqualTo: textLabel.bottomAnchor),
  34. parent.trailingAnchor.constraint(equalTo: textLabel.trailingAnchor),
  35. textLabel.centerYAnchor.constraint(equalTo: parent.centerYAnchor)
  36. ])
  37. }
  38. override func prepareForReuse() {
  39. super.prepareForReuse()
  40. imageView?.image = nil
  41. }
  42. }