【问题标题】:how to set respect language direction for constraints created by Visual Format Language?如何为视觉格式语言创建的约束设置尊重语言方向?
【发布时间】:2015-07-22 11:41:05
【问题描述】:

我通过约束(使用视觉格式语言)将一些视图固定在一起,我的应用程序在从左到右的语言中运行良好 但我的观点反映在从右到左的语言中。我可以通过使用以下方法创建约束来解决此问题:

[NSLayoutConstraint constraintWithItem:view1
                             attribute:NSLayoutAttributeRight
                             relatedBy:NSLayoutRelationEqual
                                toItem:view2
                             attribute:NSLayoutAttributeLeft
                            multiplier:1.0
                              constant:0]]

或在情节提要中添加约束并取消选中尊重语言方向以获取水平约束。 我已经推荐了this,但这不是我的情况。 我的问题是我可以在使用 VFL(视觉格式语言)时禁用尊重语言方向吗?如何禁用?我需要一个小例子。

【问题讨论】:

    标签: ios objective-c ios-autolayout


    【解决方案1】:

    使用NSLayoutAttributeLeading 代替NSLayoutAttributeLeftNSLayoutAttributeTrailing 代替NSLayoutAttributeRight

    更新

    如果您在使用视觉格式时需要明确改变方向,请注意您可以通过:

    /* choose only one of these three */
       NSLayoutFormatDirectionLeadingToTrailing = 0 << 8, // default 
       NSLayoutFormatDirectionLeftToRight = 1 << 8,
       NSLayoutFormatDirectionRightToLeft = 2 << 8
    

    constraintsWithVisualFormat 方法。因此是这样的:

    NSLayoutConstraint constraintsWithVisualFormat:@"some constraints"
                    options:NSLayoutFormatDirectionLeftToRight//<------
                    metrics:nil 
                      views:viewDictionary]];
    

    【讨论】:

    • 请再次阅读我的问题。我需要禁用尊重语言方向。如果我在 VFL 中使用前导或尾随,实际上我已启用尊重语言方向,并且当语言更改时我的视图会被镜像。当语言改变时,我不希望我的观点被反映。我知道如何在故事板中解决这个问题或使用'attribute:relatedBy:toItem:attribute:multiplier:constant:'我需要一种通过VFL添加约束的方法
    • 好的,我明白了,您能否举一个对您不起作用的 VFL 约束示例?我认为您可以将 developer.apple.com/library/ios/documentation/AppKit/Reference/… 作为参数传递,尤其是 NSLayoutFormatDirectionLeftToRight。
    猜你喜欢
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    相关资源
    最近更新 更多