[ios] fix button image padding for right-to-left layout

Signed-off-by: André <135858315+andre1110@users.noreply.github.com>
This commit is contained in:
André 2024-10-04 16:21:50 +07:00
parent aa436f3cf7
commit 06f8baeef6
6 changed files with 31 additions and 19 deletions

View file

@ -4,6 +4,7 @@
#import "MWMRouter.h"
#import "UIButton+Orientation.h"
#import "UIImageView+Coloring.h"
#import "SwiftBridge.h"
#include "platform/platform.hpp"
@ -179,11 +180,13 @@ static CGFloat const kDrivingOptionsHeight = 48;
}];
if (state == MWMDrivingOptionsStateDefine) {
[MWMBaseRoutePreviewStatus setImagePadding:0.0 for:self.drivingOptionsButton];
[self.drivingOptionsButton setImage:nil
forState:UIControlStateNormal];
[self.drivingOptionsButton setTitle:L(@"define_to_avoid_btn").uppercaseString
forState:UIControlStateNormal];
} else if (state == MWMDrivingOptionsStateChange) {
[MWMBaseRoutePreviewStatus setImagePadding:5.0 for:self.drivingOptionsButton];
[self.drivingOptionsButton setImage:[UIImage imageNamed:@"ic_options_warning"]
forState:UIControlStateNormal];
[self.drivingOptionsButton setTitle:L(@"change_driving_options_btn").uppercaseString

View file

@ -39,7 +39,6 @@
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Opi-yT-xIZ">
<rect key="frame" x="72.5" y="12" width="175" height="24"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
<inset key="imageEdgeInsets" minX="-10" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="DEFINE ROADS TO AVOID" image="ic_options_warning"/>
<connections>
<action selector="onDrivingOptions:" destination="u2u-Vb-2eH" eventType="touchUpInside" id="x2p-AW-91V"/>
@ -284,8 +283,6 @@
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NAs-km-8uw">
<rect key="frame" x="20" y="12" width="127" height="24"/>
<inset key="contentEdgeInsets" minX="8" minY="0.0" maxX="0.0" maxY="0.0"/>
<inset key="imageEdgeInsets" minX="-16" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="ManageRoute" image="ic_24px_manager"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="medium14:MWMBlack"/>

View file

@ -27,7 +27,6 @@
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZXA-Og-q2I">
<rect key="frame" x="72.5" y="12" width="175" height="24"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
<inset key="imageEdgeInsets" minX="-10" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="DEFINE ROADS TO AVOID" image="ic_options_warning"/>
<connections>
<action selector="onDrivingOptions:" destination="aNH-vh-DPz" eventType="touchUpInside" id="jR1-dk-nNj"/>
@ -239,8 +238,6 @@
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Zzm-Yo-BvL">
<rect key="frame" x="81" y="8" width="127" height="32"/>
<inset key="contentEdgeInsets" minX="8" minY="0.0" maxX="0.0" maxY="0.0"/>
<inset key="imageEdgeInsets" minX="-16" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="ManageRoute" image="ic_24px_manager"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="medium14:MWMBlack"/>
@ -323,8 +320,6 @@
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="K37-2W-GE8">
<rect key="frame" x="20" y="10" width="127" height="24"/>
<inset key="contentEdgeInsets" minX="8" minY="0.0" maxX="0.0" maxY="0.0"/>
<inset key="imageEdgeInsets" minX="-16" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="ManageRoute" image="ic_24px_manager"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="medium14:MWMBlack"/>

View file

@ -83,8 +83,21 @@ final class BaseRoutePreviewStatus: SolidTouchView {
})
}
}
@objc static func setImagePadding(_ padding: CGFloat, for button: UIButton) {
let isRightToLeft = UIView.userInterfaceLayoutDirection(for: button.semanticContentAttribute) == .rightToLeft
if(isRightToLeft){
button.contentEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: padding)
button.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: -2 * padding)
}
else {
button.contentEdgeInsets = UIEdgeInsets(top: 0, left: padding, bottom: 0, right: 0)
button.imageEdgeInsets = UIEdgeInsets(top: 0, left: -2 * padding, bottom: 0, right: 0)
}
}
private func configManageRouteButton(_ button: UIButton) {
BaseRoutePreviewStatus.setImagePadding(8, for: button)
button.setTitle(L("planning_route_manage_route"), for: .normal)
}

View file

@ -1,26 +1,29 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "Manager.png",
"idiom" : "universal",
"language-direction" : "left-to-right",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "Manager@2x.png",
"idiom" : "universal",
"language-direction" : "left-to-right",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "Manager@3x.png",
"idiom" : "universal",
"language-direction" : "left-to-right",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}
}

View file

@ -1,15 +1,16 @@
{
"images" : [
{
"filename" : "ic_24px_manager.pdf",
"idiom" : "universal",
"filename" : "ic_24px_manager.pdf"
"language-direction" : "left-to-right"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}
}