70 lines
2.3 KiB
Swift
70 lines
2.3 KiB
Swift
//
|
|
// ReportViewControllerAppearance.swift
|
|
// Mastodon
|
|
//
|
|
// Created by MainasuK on 2022-2-7.
|
|
//
|
|
|
|
import UIKit
|
|
import MastodonAsset
|
|
import MastodonLocalization
|
|
|
|
protocol ReportViewControllerAppearance: UIViewController {
|
|
func setupAppearance()
|
|
func setupNavigationBarAppearance()
|
|
}
|
|
|
|
extension ReportViewControllerAppearance {
|
|
|
|
|
|
func setupAppearance() {
|
|
|
|
title = L10n.Scene.Report.titleReport
|
|
view.backgroundColor = Asset.Scene.Report.background.color
|
|
|
|
setupNavigationBarAppearance()
|
|
|
|
let backItem = UIBarButtonItem(
|
|
title: L10n.Common.Controls.Actions.back,
|
|
style: .plain,
|
|
target: nil,
|
|
action: nil
|
|
)
|
|
navigationItem.backBarButtonItem = backItem
|
|
}
|
|
|
|
func setupNavigationBarAppearance() {
|
|
// use TransparentBackground so view push / dismiss will be more visual nature
|
|
// please add opaque background for status bar manually if needs
|
|
|
|
let barAppearance = UINavigationBarAppearance()
|
|
barAppearance.configureWithTransparentBackground()
|
|
navigationItem.standardAppearance = barAppearance
|
|
navigationItem.compactAppearance = barAppearance
|
|
navigationItem.scrollEdgeAppearance = barAppearance
|
|
if #available(iOS 15.0, *) {
|
|
navigationItem.compactScrollEdgeAppearance = barAppearance
|
|
} else {
|
|
// Fallback on earlier versions
|
|
}
|
|
}
|
|
|
|
func setupNavigationBarBackgroundView() {
|
|
let navigationBarBackgroundView: UIView = {
|
|
let view = UIView()
|
|
view.backgroundColor = Asset.Scene.Report.background.color
|
|
return view
|
|
}()
|
|
|
|
navigationBarBackgroundView.translatesAutoresizingMaskIntoConstraints = false
|
|
view.addSubview(navigationBarBackgroundView)
|
|
NSLayoutConstraint.activate([
|
|
navigationBarBackgroundView.topAnchor.constraint(equalTo: view.topAnchor),
|
|
navigationBarBackgroundView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
|
navigationBarBackgroundView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
|
|
navigationBarBackgroundView.bottomAnchor.constraint(equalTo: view.layoutMarginsGuide.topAnchor),
|
|
])
|
|
}
|
|
|
|
}
|