как настроить соблюдение направления языка для ограничений, созданных языком визуального формата?

Я связываю некоторые представления вместе ограничениями (используя язык визуального формата), и мое приложение отлично работает на языках с письмом слева направо, но мое представление отражается на языках с письмом справа налево. Я могу решить эту проблему, создав ограничения, используя:

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

или добавьте ограничения в раскадровке и снимите флажок «Учитывать направление языка» для горизонтальных ограничений. Я упомянул это, но это не мой случай. Мой вопрос: могу ли я отключить Respect Language Direction при использовании VFL (язык визуального формата) и как? Мне нужен небольшой пример.


person amin akbarzade    schedule 22.07.2015    source источник


Ответы (1)


Используйте NSLayoutAttributeLeading вместо NSLayoutAttributeLeft и NSLayoutAttributeTrailing вместо 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]];
person hris.to    schedule 22.07.2015
comment
пожалуйста, прочитайте мой вопрос еще раз. Мне нужно отключить уважение к языковому направлению. если я использую Leading или Trailing в VFL, фактически я включил Respect Language Direction, и мои представления отражаются при изменении языка. Я не хочу, чтобы мои взгляды отражались при смене языка. Я знаю, как решить это в раскадровке или с помощью «атрибута: relatedBy: toItem: атрибут: множитель: константа:» мне нужен способ при добавлении ограничений с помощью VFL - person amin akbarzade; 22.07.2015
comment
Хорошо, я вижу, не могли бы вы привести пример ограничения в VFL, который у вас не работает? Я думаю, вы могли бы передать developer.apple.com/library/ios/documentation/AppKit/Reference/ в качестве аргумента и особенно NSLayoutFormatDirectionLeftToRight. - person hris.to; 22.07.2015