在我的swift代码中,我正在使用autolayout约束。一些是直接从故事板添加的,一些是在UIScrollView上以编程方式添加的。
当应用程序以阿拉伯语版本(RTL方向)运行时,从故事板添加的自动布局约束会自动切换到RTL方向,而不会做任何努力但是在UIScrollView上以编程方式添加的那些不会被翻转。
这是我在UISCrollView上添加约束的示例:
declare @tbl table(id int, NAME varchar(100), MACHINE varchar(100), SUPERVISOR varchar(100), LAST_UPDATE datetime)
insert @tbl (id, NAME, MACHINE, SUPERVISOR, LAST_UPDATE)
values(1, 'NAME_1', 'T_001','SUP_1','20151014 09:55:26.637'),
(2,'NAME_2','T_002','SUP_2','20151014 11:54:07.087'),
(3,'NAME_2','T_002','SUP_3','20151014 12:02:31.663'),
(4,'NAME_3','T_003','SUP_4','20151014 22:53:28.253'),
(5,'NAME_4','T_005','SUP_4','20151014 09:55:47.293'),
(6,'NAME_3','T_003','SUP_3','20151015 01:59:00.000'),
(7,'NAME_3','T_003','SUP_3','20151015 10:19:00.000')
select *,DATEADD(HOUR,9,CAST(CAST(t1.LAST_UPDATE as date) as datetime)), DATEADD(HOUR,33,CAST(CAST(t1.LAST_UPDATE as date) as datetime))
from @tbl t1
where not exists(select *
from @tbl t2
where t2.id<>t1.id
and t2.NAME=t1.NAME
and t2.MACHINE=t1.MACHINE
and t2.LAST_UPDATE>=t1.LAST_UPDATE
and t2.LAST_UPDATE>=DATEADD(HOUR,9,CAST(CAST(CASE WHEN DATEPART(HOUR,t1.LAST_UPDATE)>9 THEN t1.LAST_UPDATE ELSE DATEADD(DAY,-1,t1.LAST_UPDATE) END as date) as datetime))
and t2.LAST_UPDATE<DATEADD(HOUR,33,CAST(CAST(CASE WHEN DATEPART(HOUR,t1.LAST_UPDATE)>9 THEN t1.LAST_UPDATE ELSE DATEADD(DAY,-1,t1.LAST_UPDATE) END as date) as datetime))
)
我的代码中是否有任何遗漏?或者我应该检查语言并手动翻转约束?
由于
答案 0 :(得分:4)
您应该使用.Leading
代替.Left
和.Trailing
而不是.Right
来处理应该改变语言方向的方向。这是.Leading
和.Trailing
的全部目的。