1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- //
- // JXSegmentedRTLLayout.swift
- // JXSegmentedView
- //
- // Created by blue on 2020/6/18.
- // Copyright © 2020 jiaxin. All rights reserved.
- //
- import UIKit
- public protocol JXSegmentedViewRTLCompatible: AnyObject {
- func segmentedViewShouldRTLLayout() -> Bool
- func segmentedView(horizontalFlipForView view: UIView?)
- }
- public extension JXSegmentedViewRTLCompatible {
-
- /// 根据当前系统布局方式返回是否需要RTL布局
- func segmentedViewShouldRTLLayout() -> Bool {
- return UIView.userInterfaceLayoutDirection(for: UIView.appearance().semanticContentAttribute) == .rightToLeft
- }
-
- /// 在RTL布局下水平翻转当前视图
- /// - Parameter view: 需要翻转的视图
- func segmentedView(horizontalFlipForView view: UIView?) {
- view?.transform = CGAffineTransform(scaleX: -1, y: 1)
- }
-
- }
- class JXSegmentedRTLCollectionCell: UICollectionViewCell, JXSegmentedViewRTLCompatible {
-
- override init(frame: CGRect) {
- super.init(frame: frame)
- commonInit()
- }
-
- required init?(coder: NSCoder) {
- super.init(coder: coder)
- commonInit()
- }
-
- func commonInit() {
- if segmentedViewShouldRTLLayout() {
- segmentedView(horizontalFlipForView: self)
- segmentedView(horizontalFlipForView: contentView)
- }
- }
-
- }
|