2

現在の言語に基づいて、アプリの UI を右から左の方向に、またはその逆に強制しました。

UIButtonこれは、左から右がアクティブな場合に画像の下にタイトルを表示するコードです(デフォルト)。そのため、右から左に変更すると、正常に機能しません。ここにいる人は、既存のものを修正するのを手伝ってくれますか?

extension UIButton {
    func alignImageAndTitleVertically(padding: CGFloat = 6.0) {
        let imageSize: CGSize = imageView!.image!.size
        titleEdgeInsets = UIEdgeInsetsMake(0.0, -imageSize.width, -(imageSize.height + padding), 0.0)
        let labelString = NSString(string: titleLabel!.text!)
        let titleSize = labelString.size(attributes: [NSFontAttributeName: titleLabel!.font])
        self.imageEdgeInsets = UIEdgeInsetsMake(-(titleSize.height + padding), 0.0, 0.0, -titleSize.width)
        let edgeOffset = abs(titleSize.height - imageSize.height) / 2.0;
        self.contentEdgeInsets = UIEdgeInsetsMake(edgeOffset, 0.0, edgeOffset, 0.0)
    }
}

言語がアラビア語の場合に使用しているものは次のとおりです。

func alignImageAndTitleVerticallyWhenArabic(padding: CGFloat = 6.0) {
    let imageSize: CGSize = imageView!.image!.size
    titleEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, -(imageSize.height + padding), -imageSize.width + padding)
    let labelString = NSString(string: titleLabel!.text!)
    let titleSize = labelString.size(attributes: [NSFontAttributeName: titleLabel!.font])
    self.imageEdgeInsets = UIEdgeInsetsMake(-titleSize.width, 0.0, 0.0, padding)
    let edgeOffset = abs(titleSize.height - imageSize.height) / 2.0;
    self.contentEdgeInsets = UIEdgeInsetsMake(edgeOffset, 0.0, edgeOffset, 0.0)
}

:

  1. を使用するalignImageAndTitleVerticallyWhenArabicと、ボタンの下になりますが、位置合わせはまだ適切ではありません。

  2. アラビア語のソリューションは機能していますが、ボタンの画像が少し伸びています。

4

0 に答える 0