From a8abc949921bae466f7334c38b82d61c74ebf08c Mon Sep 17 00:00:00 2001 From: Frank <472730949@qq.com> Date: Mon, 22 May 2023 10:28:30 +0800 Subject: [PATCH 1/2] Support RTL mode. --- CHIPageControl/Core/CHIBasePageControl.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHIPageControl/Core/CHIBasePageControl.swift b/CHIPageControl/Core/CHIBasePageControl.swift index 8c1ff41..6ddc20e 100755 --- a/CHIPageControl/Core/CHIBasePageControl.swift +++ b/CHIPageControl/Core/CHIBasePageControl.swift @@ -226,6 +226,18 @@ import UIKit func update(for progress: Double) { fatalError("Should be implemented in child class") } + + open override func layoutSubviews() { + super.layoutSubviews() + + if semanticContentAttribute == .forceRightToLeft || + (UIApplication.shared.userInterfaceLayoutDirection == .rightToLeft && semanticContentAttribute == .unspecified) { + transform = CGAffineTransform(scaleX: -1, y: 1) + } else { + transform = .identity + } + } + deinit { self.displayLink?.remove(from: .current, forMode: .common) From 47fe32e4df580895d31b5b90b526c5ccd6ceb660 Mon Sep 17 00:00:00 2001 From: Frank <472730949@qq.com> Date: Mon, 22 May 2023 10:34:07 +0800 Subject: [PATCH 2/2] Add some comments --- CHIPageControl/Core/CHIBasePageControl.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHIPageControl/Core/CHIBasePageControl.swift b/CHIPageControl/Core/CHIBasePageControl.swift index 6ddc20e..655dbf5 100755 --- a/CHIPageControl/Core/CHIBasePageControl.swift +++ b/CHIPageControl/Core/CHIBasePageControl.swift @@ -230,7 +230,9 @@ import UIKit open override func layoutSubviews() { super.layoutSubviews() + // forcing rtl if semanticContentAttribute == .forceRightToLeft || + // not forcing and user interface RTL in system language. (UIApplication.shared.userInterfaceLayoutDirection == .rightToLeft && semanticContentAttribute == .unspecified) { transform = CGAffineTransform(scaleX: -1, y: 1) } else {