diff --git a/LearnEnglish/LearnEnglish/Views/HairlineView.swift b/LearnEnglish/LearnEnglish/Views/HairlineView.swift new file mode 100644 index 0000000..699e37b --- /dev/null +++ b/LearnEnglish/LearnEnglish/Views/HairlineView.swift @@ -0,0 +1,23 @@ +import UIKit + +final class HairlineView: UIView { + private var heightConstraint: NSLayoutConstraint? + + override init(frame: CGRect) { + super.init(frame: frame) + backgroundColor = .separator + translatesAutoresizingMaskIntoConstraints = false + let constraint = heightAnchor.constraint(equalToConstant: 0.5) + constraint.isActive = true + heightConstraint = constraint + } + + @available(*, unavailable) + required init?(coder: NSCoder) { fatalError() } + + override func didMoveToWindow() { + super.didMoveToWindow() + let scale = window?.windowScene?.screen.scale ?? 2 + heightConstraint?.constant = 1.0 / scale + } +} diff --git a/LearnEnglish/LearnEnglish/Views/QuizResultView.swift b/LearnEnglish/LearnEnglish/Views/QuizResultView.swift index a89baa8..22a55e0 100644 --- a/LearnEnglish/LearnEnglish/Views/QuizResultView.swift +++ b/LearnEnglish/LearnEnglish/Views/QuizResultView.swift @@ -133,10 +133,7 @@ final class QuizResultView: UIView { }, for: .touchUpInside) section.addArrangedSubview(button) - let divider = UIView() - divider.backgroundColor = .separator - divider.translatesAutoresizingMaskIntoConstraints = false - divider.heightAnchor.constraint(equalToConstant: 1.0 / UIScreen.main.scale).isActive = true + let divider = HairlineView() section.addArrangedSubview(divider) } return section diff --git a/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift b/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift index 70c07eb..01ed19b 100644 --- a/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift +++ b/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift @@ -106,10 +106,7 @@ final class WordDetailViewController: UIViewController { meaningLabel.font = .preferredFont(forTextStyle: .title2) meaningLabel.numberOfLines = 0 - let divider = UIView() - divider.backgroundColor = .separator - divider.translatesAutoresizingMaskIntoConstraints = false - divider.heightAnchor.constraint(equalToConstant: 1.0 / UIScreen.main.scale).isActive = true + let divider = HairlineView() let exampleTitle = makeCaption("例句") let exampleLabel = UILabel()