左右的相互调换,使用系统提供的镜像功能。
针对全部的UIView 使用镜像功能
[UIView appearance].semanticContentAttribute ==UISemanticContentAttributeForceRightToLeft;
针对具体部分View使用
self.view.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
以上方式只有在使用mas 或者系统的约束前提之下生效 。
附:之前使用mas 约束没有想过 left right 与leading trailing 的区别,最近需要做阿拉伯语才明白只有使用 leading trailing 的前提下 镜像功能才能生效, 使用 left right 或者 frame的情况下都是指定了具体的方向和坐标位置,因此无法调整。切记!!!
针对阿拉伯地区的导航的跳转方向是相反的,从左往右跳转的解决方案
- push时
CATransition* transition = [CATransition animation]; transition.type = kCATransitionPush;//可更改为其他方式 transition.subtype = kCATransitionFromLeft;//可更改为其他方式 [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [self.navigationController pushViewController:target animated:YES];
pop是与上述一样只需修改方向
transition.subtype = kCATransitionFromLeft;//可更改为其他方式 self.navigationController popViewControllerAnimated:YES];