96 lines
3.4 KiB
Swift
96 lines
3.4 KiB
Swift
//
|
|
// ReportCommentTableViewCell.swift
|
|
// Mastodon
|
|
//
|
|
// Created by MainasuK on 2022-2-7.
|
|
//
|
|
|
|
import UIKit
|
|
import Combine
|
|
import MastodonUI
|
|
import MastodonAsset
|
|
import MastodonLocalization
|
|
import UITextView_Placeholder
|
|
|
|
final class ReportCommentTableViewCell: UITableViewCell {
|
|
|
|
var disposeBag = Set<AnyCancellable>()
|
|
|
|
let commentTextViewShadowBackgroundContainer: ShadowBackgroundContainer = {
|
|
let shadowBackgroundContainer = ShadowBackgroundContainer()
|
|
return shadowBackgroundContainer
|
|
}()
|
|
|
|
let commentTextView: UITextView = {
|
|
let textView = UITextView()
|
|
let font = UIFontMetrics(forTextStyle: .body).scaledFont(for: .systemFont(ofSize: 17, weight: .regular))
|
|
textView.font = font
|
|
textView.attributedPlaceholder = NSAttributedString(
|
|
string: L10n.Scene.Report.textPlaceholder,
|
|
attributes: [
|
|
.font: font,
|
|
.foregroundColor: Asset.Colors.Label.secondary.color
|
|
]
|
|
)
|
|
textView.textContainerInset = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16)
|
|
textView.isScrollEnabled = false
|
|
textView.layer.masksToBounds = true
|
|
textView.layer.cornerRadius = 10
|
|
return textView
|
|
}()
|
|
|
|
override func prepareForReuse() {
|
|
super.prepareForReuse()
|
|
|
|
disposeBag.removeAll()
|
|
}
|
|
|
|
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
|
|
super.init(style: style, reuseIdentifier: reuseIdentifier)
|
|
_init()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
super.init(coder: coder)
|
|
_init()
|
|
}
|
|
|
|
}
|
|
|
|
extension ReportCommentTableViewCell {
|
|
|
|
private func _init() {
|
|
selectionStyle = .none
|
|
backgroundColor = .clear
|
|
|
|
commentTextViewShadowBackgroundContainer.translatesAutoresizingMaskIntoConstraints = false
|
|
contentView.addSubview(commentTextViewShadowBackgroundContainer)
|
|
NSLayoutConstraint.activate([
|
|
commentTextViewShadowBackgroundContainer.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 24),
|
|
commentTextViewShadowBackgroundContainer.leadingAnchor.constraint(equalTo: contentView.layoutMarginsGuide.leadingAnchor),
|
|
commentTextViewShadowBackgroundContainer.trailingAnchor.constraint(equalTo: contentView.layoutMarginsGuide.trailingAnchor),
|
|
contentView.bottomAnchor.constraint(equalTo: commentTextViewShadowBackgroundContainer.bottomAnchor, constant: 24),
|
|
])
|
|
|
|
commentTextView.translatesAutoresizingMaskIntoConstraints = false
|
|
commentTextViewShadowBackgroundContainer.addSubview(commentTextView)
|
|
commentTextView.pinToParent()
|
|
NSLayoutConstraint.activate([
|
|
commentTextView.heightAnchor.constraint(greaterThanOrEqualToConstant: 100).priority(.defaultHigh),
|
|
])
|
|
}
|
|
|
|
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
|
super.traitCollectionDidChange(previousTraitCollection)
|
|
|
|
commentTextView.attributedPlaceholder = NSAttributedString(
|
|
string: L10n.Scene.Report.textPlaceholder,
|
|
attributes: [
|
|
.font: UIFontMetrics(forTextStyle: .body).scaledFont(for: .systemFont(ofSize: 17, weight: .regular)),
|
|
.foregroundColor: Asset.Colors.Label.secondary.color
|
|
]
|
|
)
|
|
}
|
|
|
|
}
|